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'

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容