zoukankan      html  css  js  c++  java
  • Django笔记

    1.新建环境
    2.配置mysql
    3.运行manage.py makemaigrations,migrate 生成数据表
    4.创建users app
    5.定义users moudles
    6.在users moudles中用到了image,需要pillow,所以pip安装它
    7.把users注册到INSTALLED_APPS,并在settings中重载方法AUTH_USER_MODEL = 'users.UserProfile'
    8.makemigrations users,migrate users
    9.startapp courses ,给moudels增添内容
    10.startapp organization,给moudels增添内容

    1. startapp operation,给moudels增添内容
      12.注册 'courses','organization','operation'
      13.makemigrations,migrate
      14.创建apps python package,并把四个app拖动到这里面来
      15.把apps mark 为source root
      16.把apps 增加到搜索目录下 sys.path.insert(0,os.path.join(BASE_DIR,'apps'))
      17.在cmd下测试是否可正常运行 python manage.py runserver 0.0.0.0:8000
      后台管理系统
      特点
      1.权限管理
      2.少前端样式
      3.快速开发

    1.新建超级用户 createsuperuser
    jeff
    admin123
    2.修改语言时区 存储时间(修改为False后再数据库保存数据时就为本地时间,否则为UTC时间
    settings-LANGUAGE_CODE = 'zh-hans'
    TIME_ZONE = 'Shanghai' USE_TZ = False
    3.将UserProfile注册进admin管理后台users-admin.py,并写一个管理器UserProfileAdmin
    from .models import UserProfile
    class UserProfileAdmin(admin.ModelAdmin):
    pass
    admin.site.register(UserProfile, UserProfileAdmin)

    1. 在settings中添加以下内容,以修复1452, 'Cannot add or update a child row:
      a foreign key constraint fails

    DATABASES = {
    'default': {
    ...
    "init_command": "SET foreign_key_checks = 0;",
    },
    }

    添加xadmin

    1. pip install xadmin
    2. 在settings注册'xadmin','crispy_forms'
    3. 把默认的admin指向xadmin,urls.py 这样就完成了admin的替换
    4. 注销掉原来users-admin.py中的admin注册方式
    5. 把admin中的表同步过来 makemigrations
    6. 下载xadmin源码,在项目根目录下创建文件夹extra_apps,把下载的源码中xadmin文件夹放进去
      再把extra_apps mark为source root
    7. 卸载xadmin pip uninstall xadmin
    8. 发生ImportError: No module named xadmin,把extra_apps 增加到搜索目录下

    users app的moudel注册

    1. xadmin会自动搜寻每个app下adminx文件
    2. 所以在users下新建adminx.py文件,将EmailVerifyRecordAdmin注册进users-adminx.py
    3. 在测试添加邮箱验证码时IndexError at /xadmin/users/emailverifyrecord/add/
    4. 重载EmailVerifyRecord unicode方法
    5. 在邮箱验证码中自定义显示的列,修改注册的users-adminx.py EmailVerifyRecordAdmin
      list_display = ['code', 'email', 'send_type', 'send_time']
    6. 增加查找功能search_fields = ['code', 'email']
    7. 增加过滤器功能list_filter=['code', 'email', 'send_type', 'send_time']

    将各个moudel注册到xadmin中

    1. 在courses下新建adminx,把各moudle注册到xadmin中
    2. 指定搜索外键的字段,在名称中添加双下划线,course__name
    3. 重复以上操作把各个moudel加进来

    管理面板收起app导航栏,添加主题,全局配置名称

    1. 在users-adminx.py中添加
      class BaseSetting(object):
      enable_themes = True
      use_bootswatch = True

    class GlobalSetting(object):
    site_title = '幕学后台管理系统'
    site_footer = '幕学在线网'
    menu_style = 'accordion'

    app名称改为中文

    1. 在apps下的每个app中apps.py文件中添加中文名称
    2. init加上引用。
      在每个app init.py 添加变量default_app_config

    第六章

    1. 在根目录下新建static文件夹,将静态文件复制到此目录下
    2. 在urls中配置,以处理静态文件
    3. 在settings中添加静态文件存放路径,修改index.html中css,js引用路径
    4. 将login页面添加到urls中,注意根目录下的文件如login前不需要加/

    用户登录

    1. users-views.py 添加login登录逻辑
    2. 默认方式为用户名登录,添加邮箱登录方式
      在settings重载变量
      AUTHENTICATION_BACKENDS = (
      'users.views.CustomBackend',
      )
      并在views中定义CustomBackend

    session 和cookie
    用户注册

    1. 在views定义注册RedisterView,在urls中设置RedisterView
    2. 把注册页面放到根目录下
    3. 修改 register.html 中css js的引用路径
      例如../css/login.css 修改为{% static 'css/login.css' %}
      这样会根据settings中的配置STATIC_URL = '/static/'自动配置,
      以后变更地址就只需修改STATIC_URL
    4. 在虚拟环境中安装注册码插件 captcha
    5. 按照captcha 说明进行配置
    6. makemigrations migrate

    用户注册

    1. 验证输入
      取出用户名,密码
    2. 实例化UserProfile
    3. 给UserProfile的实例赋值username,email
    4. 密码加密
    5. 保存进数据库
      给邮箱发送激活链接
      1.在apps下新建package utils,用来存放邮箱验证模块
    6. 定义send_register_email
      在链接里加上后台生成的随机字符串
      用户在点击链接时,把加上的随机字符串取出来
      然后在数据库中去查询,存在就激活,不存在就报错
    7. 处理用户激活
      4.判断注册邮箱是否已存在

    找回密码

    详情页
    https://github.com/xinghezhao/MxOnline.git
    https://github.com/xinghezhao/MxOnline.git

    总结

    1. 使用xadmin代替admin做为后台管理系统
    2. 登录,注册,找回密码
    3. 课程机构功能:机构列表,机构详情页,咨询提交
    4. 课程功能:课程列表,课程详情页
    5. 讲师:讲师列表,讲师详情页
    6. 个人中心功能: 用户学信息修改,全局搜索

    pythonanywhere superuser jeff 120880127p

    EMAIL_HOST = 'smtp.sina.com'
    EMAIL_PORT = 25
    EMAIL_HOST_USER = 'djangomuke@sina.com'
    EMAIL_HOST_PASSWORD = '120880127s'
    EMAIL_USE_TLS = False
    EMAIL_FROM = 'djangomuke@sina.com'

    EMAIL_HOST = "smtp.gmail.com"
    EMAIL_HOST_USER = "Jeff.xxnn@gmail.com"
    EMAIL_HOST_PASSWORD = 'mvcwrcnovxdfakeq'
    EMAIL_PORT = 587
    EMAIL_USE_TLS = True

    EMAIL_FROM = 'Jeff.xxnn@gmail.com'

     
     
  • 相关阅读:
    Multi-Tenancy模式,基础服务大规模扩张的时候,是应该推进了。
    Python中的tuple
    Create and Call HttpHandler in SharePoint
    各种数据库(oracle、mysql、sqlserver等)在Spring中数据源的配置和JDBC驱动包
    BNU 34986 Football on Table
    Effective JavaScript Item 31 优先使用Object.getPrototypeOf,而不是__proto__
    POJ 3080 Blue Jeans (后缀数组)
    HDU 2586 How far away ?(LCA模板 近期公共祖先啊)
    自己主动化的在程序中显示SVN版本号
    在Mac OS X中部署Tomcat的经验
  • 原文地址:https://www.cnblogs.com/jeff-ideas/p/10540337.html
Copyright © 2011-2022 走看看