使用django开发遇到问题

来源:互联网 发布:ubuntu更新源 编辑:程序博客网 时间:2024/05/19 01:13
1、创建项目    1.1 安装Django    :pip install Django    1.2 新建目录learning_log    1.2 进入目录learning_log, django-admin.py startproject learning_log .   【注】:后面那个“.”不能落下 2、python3无法安装MysqlDB,使用pymysql代替    2.1 pip install pymysql  【注】:不要使用pymysql3,版本太低,运行migrate时候会报错“ImportError: cannot import name 'Thing2Literal'2.2 在项目根下的__init__文件中配置如下:        import pymysql        pymysql.install_as_MySQLdb()    2.3 运行 python manage.py makemigrations            python manage.py migrate3、model中,在页面输出对象时候,想输出某个值显示,比如:页面显示obj时候显示obj.name,在model中的某个表对应的类中写入代码如下:    2.x : def __unicode__(self):            return self.name    3.x : def __str__(self):            return self.name        4、django的shell,输入命令、数据后就可以通过交互终端会话以编程方式查看这些数据,为了测试项目和排除故障    4.1 python manage.py shell        from learning_logs.models import Topic        Topic.objects.all()5、解决pycharm中Django内部方法找不到、html无法识别django语法:    打开pycharm的File->Settings,搜索Django,然后将项目根目录加入就好了    在setting-language&frameworks-python template language中选择django6、修改templates文件夹位置:    6.1 在settings.py中,设置TEMPLATES下的DIRS:         'DIRS': [os.path.join(BASE_DIR,'templates')],  //设置在根目录7、登陆遇到错误:'WSGIRequest' object has no attribute 'session'    我的MIDDLEWARE的配置是:        MIDDLEWARE = [            'django.middleware.security.SecurityMiddleware',            'django.middleware.common.CommonMiddleware',            'django.contrib.sessions.middleware.SessionMiddleware',            'django.middleware.csrf.CsrfViewMiddleware',            'django.contrib.auth.middleware.SessionAuthenticationMiddleware',            'django.contrib.auth.middleware.AuthenticationMiddleware',            'django.contrib.messages.middleware.MessageMiddleware',            'django.middleware.clickjacking.XFrameOptionsMiddleware',        ]        实际上,这是Django版本的问题,1.10之前,中间件的key为MIDDLEWARE_CLASSES, 1.10之后,为MIDDLEWARE。所以在开发环境和其他环境的版本不一致时,要特别小心,会有坑。         改配置为:        MIDDLEWARE_CLASSES = [            'django.middleware.security.SecurityMiddleware',            'django.middleware.common.CommonMiddleware',            'django.contrib.sessions.middleware.SessionMiddleware',            'django.middleware.csrf.CsrfViewMiddleware',            'django.contrib.auth.middleware.SessionAuthenticationMiddleware',            'django.contrib.auth.middleware.AuthenticationMiddleware',            'django.contrib.messages.middleware.MessageMiddleware',            'django.middleware.clickjacking.XFrameOptionsMiddleware',        ]        就可以解决了。8、关于STATIC_URL、STATICFILES_DIRS     STATIC_URL = '/static/'     STATICFILES_DIRS = (        os.path.join(BASE_DIR,'static'),    )    STATIC_URL :#用来在页面显示静态资源用的 src={{ STATIC_URL }}{{ course.image }}    STATICFILES_DIRS :资源在服务器上的绝对路径
原创粉丝点击