zoukankan      html  css  js  c++  java
  • Django开发中常用命令以及常见问题汇总

    目录

    一、Python虚拟环境

    二、Django使用mysql

    三、Django改为中文以及时区

    常见问题

    1、django跨域的时候报错

    2、cannot import name 'password_reset_confirm'

    3、django.contrib.auth.views import login

    4、render() got an unexpected keyword argument 'renderer'

    5、django.db.utils.InternalError

    6、关联关系ForeignKey引发的错误

    7、模块包名称合并修改引发的错误

    8、Xadmin 报错 'MIDDLEWARE_CLASSES'

    9、xadmin报错 'QUERY_TERMS'


    一、Python虚拟环境

    安装python3,升级pip3

    sudo pip3 install --upgrade pip

    安装 virtualenv

    sudo pip install virtualenv

    安装 virtualenvwrapper, Virtaulenvwrapper是virtualenv的扩展包,可以更方便地新增,删除,复制,切换虚拟环境。

    sudo pip install virtualenvwrapper

    接下来创建一个文件夹,用来存放所有的虚拟环境 

    mkdir ~/.virtualenvs

    在~/.bashrc下添加环境变量

    export WORKON_HOME=~/.virtualenvs
    source /usr/local/bin/virtualenvwrapper.sh

    然后切换到 .virtualenvs目录下

    cd .virtualenvs/

    创建一个或者多个虚拟环境 env1

    mkvirtualenv env1

    列出虚拟环境

    lsvirtualenv -b

    切换虚拟环境

    workon env1

    查询环境安装了哪些包

    lssitepackages

    退出虚拟环境

    deactivate

    删除虚拟环境

    rmvirtualenv env1

    二、Django使用mysql

    在settings.py中修改DATABASES

    DATABASES = {
         'default': {
             'ENGINE': 'django.db.backends.mysql', #数据库引擎
             'NAME': 'test',                       #数据库名
             'USER': 'root',                       #用户名
             'PASSWORD': 'root',                   #密码
             'HOST': '',                           #数据库主机,默认为localhost
             'PORT': '',                           #数据库端口,MySQL默认为3306
             'OPTIONS': {
                 'autocommit': True,
             },
         }
     }

    在__init__.py中添加 

    import pymysql
    pymysql.install_as_MySQLdb()

    三、Django改为中文以及时区

    在settings.py中修改以下代码

    LANGUAGE_CODE = 'zh-hans'
    TIME_ZONE = 'Asia/Shanghai'

    常见问题

    1、django跨域的时候报错

    错误提示:

    (corsheaders.E013) Origin '127.0.0.1:8080' in CORS_ORIGIN_WHITELIST is missing scheme or netloc
        HINT: Add a scheme (e.g. https://) or netloc (e.g. example.com).

    解决方法:

    报这个错误意思是自己跨域的时候地址写错了,地址需要加上http://

    'http://127.0.0.1:8080',
    'http://localhost:8080',

    2、cannot import name 'password_reset_confirm'

    错误提示:

    cannot import name 'password_reset_confirm'

    解决方法:

    from django.contrib.auth.views import PasswordResetForm

    3、django.contrib.auth.views import login

    错误提示:

    ImportError: cannot import name 'login' from 'django.contrib.auth.views'

    解决方法:

    from django.contrib.auth import login

    4、render() got an unexpected keyword argument 'renderer'

    错误提示:

    render() got an unexpected keyword argument 'renderer'

    解决方法:

    找到这一行,把“renderer = self.form.renderer”注释掉

    5、django.db.utils.InternalError

    错误提示:

    django.db.utils.InternalError: (1060, "Duplicate column name 'cooperation_period'")

    解决方法:

    错误的主要原因是数据库中已经含有相应的字段了,但是在你makemigrations的时候还记录了需要增加这个字段(主要是你可能删除过migrations这个文件夹里面的内容)

    将你存在的字段名,在migrations文件夹中注释掉,再migrate

    6、关联关系ForeignKey引发的错误

    错误提示:

    提示缺少参数on_delete

    解决方法:

    凡是出现关联关系字段的地方全部加上 on_delete=models.CASCADE , 如下图所示:

    7、模块包名称合并修改引发的错误

    错误提示:

    ModuleNotFoundError: No module named 'django.core.urlresolvers' 

    解决方法:

    from django.core.urlresolvers import NoReverseMatch, reverse 
    # 修改为:
    from django.urls import NoReverseMatch, reverse

    8、Xadmin 报错 'MIDDLEWARE_CLASSES'

    错误提示:

    AttributeError: 'Settings' object has no attribute 'MIDDLEWARE_CLASSES'

    解决方法:

    # 将xadminpluginslanguage.py 中的
    
    if settings.LANGUAGES and 'django.middleware.locale.LocaleMiddleware' in settings.MIDDLEWARE_CLASSES:
    
    # 修改为:
    
    if settings.LANGUAGES and 'django.middleware.locale.LocaleMiddleware' in settings.MIDDLEWARE:
    
    # 最后运行:
    python manage.py makemigrations # 创建迁移数据文件
    
    # 再运行:
    python manage.py migrate # 迁移数据库

    9、xadmin报错 'QUERY_TERMS'

    错误提示:

    ImportError: cannot import name 'QUERY_TERMS' from 'django.db.models.sql.query'

    解决方法:

    # django2.1.1版本将xadminpluginsfilters.py文件中的
    
    from django.db.models.sql.query import LOOKUP_SEP, QUERY_TERMS
    
    # 修改为
    
    from django.db.models.sql.query import LOOKUP_SEP, Query
    
    
    
    # 在Django2.0版本中把
    
    from django.db.models.sql.query import LOOKUP_SEP, QUERY_TERMS
    
    # 修改为:
    
    from django.db.models.sql.query import LOOKUP_SEP
    
    from django.db.models.sql.constants import QUERY_TERMS

    10、django设置msyql引擎出错

    错误提示:

    django.db.utils.OperationalError: (1193, "Unknown system variable 'storage_engine'")

    解决方法:

    # django连接数据库时,配置
    
    "OPTIONS":{"init_command":"SET default_storage_engine=INNODB;"}

    11、django提示缺失mysqlclient

    错误提示:

    django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
    Did you install mysqlclient?

    解决方法:

    # 找到site-packages/django/db/backends/mysql/base.py,注释掉下面的两行代码
    
    if version < (1, 3, 13):
        raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)

    12、AttributeError: 'str' object has no attribute 'decode'

    错误提示:

    AttributeError: 'str' object has no attribute 'decode'

    解决办法:

    # 找到/site-packages/django/db/backends/mysql/operations.py
    query = query.decode(errors='replace')
    # 修改为
    ​​​​​​​query = query.encode(errors='replace')
    一键三连呀!
  • 相关阅读:
    钱多多软件制作04
    团队项目01应用场景
    HDU 4411 arrest
    HDU 4406 GPA
    HDU 3315 My Brute
    HDU 3667 Transportation
    HDU 2676 Matrix
    欧拉回路三水题 POJ 1041 POJ 2230 POJ 1386
    SPOJ 371 BOXES
    POJ 3422 Kaka's Matrix Travels
  • 原文地址:https://www.cnblogs.com/jee-cai/p/14095282.html
Copyright © 2011-2022 走看看