美文网首页
Django问题总结

Django问题总结

作者: 冷煖自知 | 来源:发表于2018-04-05 17:46 被阅读215次

    安装django-users2

    • 首先下载django-users2
      将解压的users拖入工程目录下
    • 然后运行pip install django-users2
      在settings.py 中添加
    INSTALLED_APPS = [
       ...
        'users',
       ...
    ]
    
    AUTH_USER_MODEL = 'users.User'
    
    • 引入成功后创建数据表
    python manage.py makemigrations
    python manage.py migrate
    

    tip:

    • 如果添加urls.py中报NameError at / name 'include' is not defined
      可将from django.conf.urls import include引入到urls.py
    • 如果安装了mysql-python后更新mysql数据库报错,有可能数据库字符集设置错误
      指定字符集:
      CREATE DATABASE ledemon DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    • 如果django后台添加汉子报错'ascii' codec can't encode characters in position 0-1:
      需要在相应入口文件添加
    import sys
    reload(sys)
    sys.setdefaultencoding('utf8')
    

    如果用python manager.py启动,则在 manager.py头部添加
    如果用uwsgi启动,需要在uwsgi.py头部添加

    • Django 2 中使用mysql报错
    django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
    Did you install mysqlclient?
    

    需要在Django的init文件中添加

    import pymysql
    pymysql.install_as_MySQLdb()
    
    • 如果想拉取所有静态文件
    python manage.py collectstatic
    

    如果报错django.core.exceptions.ImproperlyConfigured: You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path.
    需要在setting.py中添加

    STATIC_ROOT = os.path.join(BASE_DIR, 'static')
    

    django自带User进行验证

    • 用户登录验证
    from django.contrib.auth import authenticate
    user = authenticate(username=username, password=password)  # 验证用户名和密码,返回用户对象
    
    • 用户密码对比
    from django.contrib.auth.hashers import make_password, check_password
    #创建django密码, 第二个参数为None是每次产生的密码都不用,第三个参数为算法, 后面两个参数可以忽略
    dj_ps = make_password(password.decode('utf-8'), None, 'pbkdf2_sha256')  
    # check_password 返回值为一个Bool类型,验证密码的正确与否
    ps_bool = check_password(ps, dj_ps)
    

    听雨阁

    相关文章

      网友评论

          本文标题:Django问题总结

          本文链接:https://www.haomeiwen.com/subject/wkddhftx.html