前言
 
环境说明:python3.5 + django2.0, 用的pycharm4.04专业版
课程视频地址
 
Navicat for MySQL 安装软件和破解补丁:
 
pycharm注册服务器
 
django在windows上运行出错时的资源网站
 
 
 
第一天 创建users应用并编写相应models.py
对应github地址:第一天小试牛刀
 
1. 创建项目mxonline并安装mysql驱动  
pip install mysqlclient,不行的话去https://www.lfd.uci.edu/~gohlke/pythonlibs/下相应版本
 
 
2. mxonline的settings.py中配置数据库,然后通过navicat新建对应的数据库名
 
 
 
3. 创建users应用, 编写users/models.py
如果第一次执行python manage.py migrate可自动生成一些项目基本数据表,其中包括auth_user表,它包括了一些基本属性,我们可以继承这个表的基础上添加一些其他属性。定义users/models.py如下
 
注意:
1)最好在设计好users/models.py之后再进行数据库初始化,以避免一些不必要的错误
2)ImageField字段底层是Charfield,所以一定要写max_length
3)UserProfile继承了AbstractUser,就是auth_user表中的内容,注意还有一个AbstractBaseUser,别写错
4)最后一行的username就是AbstractUser中的属性
 
 
4. 在settings.py中INSTALLED_APPS里注册users,并在下面一行重载AUTH_USER_MODEL
 
 
 
5. 给users/models添加额外的表
 
5. 1 添加验证邮箱类,目的是用来注册账户和找回密码
 
注意
在send_time中用到了datetime.now,所以要from datetime import datetime
 
 
5.2  添加轮播图类,用来控制图片的属性和功能
 
 
 
 
6. 迁移数据库
python manage.py makemigrations users
python manage.py migrate
有时候在models.py写好前执行python manage.py migrate会出现下面错误
解决方法是删除除了auth_user外的其他表,重新执行上面命令
 
 
 
7. 创建后台账户(也可以不创建,因为后面要用xadmin来写后台)
 
7.1 创建超级用户并注册应用
python manage.py createsuperuser
在user/admin.py修改为如下
登陆http://127.0.0.1/admin即可进入后台
如果打开网页出现错误,删除整个数据库,重新生成一下
 
7.2 修改后台管理页面语言为中文
在settings.py修改为如下
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_TZ = False #表示用本地时间,而不是UTC国际时间
 
 
 
 
 
 第2天 创建剩余应用并编写相应模型
 
对应github地址:第二天重复的工作
 
重点:
1. 在django2.0,必须指明外键删除时的操作,比如机构倒闭了,机构里的员工怎么处理必须自己指明,比如可以删除。Django提供了如下操作
1) CASCADE
2) PROTECT
3) SET_NULL
4) SET_DEFAULT
一般进行级联删除就好,也就是添加参数on_delete=models.CASCADE
 
 
2. 多对多关系的处理
users和courses模型存在循环引用的关系,比如:
users中学生学习的课程要引用courses模型中的coursename
courses中的课程评论要引用users模型中的用户名
 
这样容易造成死循环影响性能,为了解决这个问题,可以再定义一个operation模型,来引用他们。其实就是users和courses是多对多的关系,需要另外一张表operation来处理
 
 
 
一. 新建一个应用course, 然后编写cousre/models.py
经分析,课程结构如下
1. 课程基本信息表
 
2. 章节表,和课程是1对多关系
 
3. 视频表,每一个章节对应多个视频
 
4. 课程资源表,比如课件,安装包等
 
 
 
 
二. 新建一个应用organization,编写organization/models.py
经分析,组织结构如下
 
1. 城市信息
 
 
2. 课程机构基本信息
 
3. 教师基本信息
 
 
 
 
三. 新建一个应用:operation,这个要重点学习
 
1. 用户咨询
 
2. 用户评论
 
3. 用户收藏
 
4. 用户消息
 
5. 用户学习的课程
 
 
 
 
四. 注册应用以及整理
 
1. 在settings.py的INSTALLED_APPS中注册这几个应用
2. 新建python package类型的文件夹apps,然后把users, courses, operation, organization这几个应用放进入,把apps右键mark成source root
3. 在settings.py中import sys, 然后加入sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
4. 迁移数据库,执行 python manage.py makemigrations, python manage.py migrate
 
 
 
 
 
 
 

mxonline实战-1,创建应用及相应模型的更多相关文章

  1. 《Entity Framework 6 Recipes》翻译系列 (3) -----第二章 实体数据建模基础之创建一个简单的模型

    第二章 实体数据建模基础 很有可能,你才开始探索实体框架,你可能会问“我们怎么开始?”,如果你真是这样的话,那么本章就是一个很好的开始.如果不是,你已经建模,并在实体分裂和继承方面感觉良好,那么你可以 ...

  2. 应用HTK搭建语音拨号系统2:创建单音素HMM模型

    选自:http://maotong.blog.hexun.com/6204849_d.html 苏统华 哈尔滨工业大学人工智能研究室 2006年10月30日 声明:版权所有,转载请注明作者和来源 该系 ...

  3. 【Unity】3.0 第3章 创建和导入3D模型

    分类:Unity.C#.VS2015 创建日期:2016-04-02 一.简介 利用Unity内置的基本模型和工具,不需要借助任何其他的三维建模软件,就可以直接创建出各种3D模型,这是这一章我们首先学 ...

  4. 第八天 1-7 实战:创建一个root无法删除的文件

    实战:创建一个root无法删除的文件 简介:Linux文件的最底层(内核级别)属性的查看与修改 命令:lsattr.chattr Linux文件除了具有基本权限rwx,及特殊权限(SUID.SGID. ...

  5. scrapy电影天堂实战(二)创建爬虫项目

    公众号原文 创建数据库 我在上一篇笔记中已经创建了数据库,具体查看<scrapy电影天堂实战(一)创建数据库>,这篇笔记创建scrapy实例,先熟悉下要用到到xpath知识 用到的xpat ...

  6. Jmeter(五) - 从入门到精通 - 创建网络计划实战和创建高级Web测试计划(详解教程)

    1.简介 上一篇中宏哥已经将其的理论知识介绍了一下,这一篇宏哥就带着大家一步一步的把上一篇介绍的理论知识实践一下,然后再说一下如何创建高级web测试计划. 2.网络计划实战 通过上一篇的学习,宏哥将其 ...

  7. Flask实战第38天:前台模型创建

    安装shortuuid pip install shortuuid 编辑front.models.py from exts import db import shortuuid from werkze ...

  8. java并发编程实战《二》java内存模型

    Java解决可见性和有序性问题:Java内存模型 什么是 Java 内存模型? Java 内存模型是个很复杂的规范,可以从不同的视角来解读,站在我们这些程序员的视角,本质上可以理解为, Java 内存 ...

  9. 创建简单的机器人模型smartcar

    前面我们使用的是已有的机器人模型进行仿真,这一节我们将建立一个简单的智能车机器人 smartcar,为后面建立复杂机器人打下基础. 一.创建硬件描述包. cd ~/catkin_ws/srcroscr ...

随机推荐

  1. Android工程目录结构

    ----------siwuxie095 首先创建一个简单的项目:MainActivity 工程目录结构一览: 工程目录结构介绍: 1.manifests目录 里面有一个AndroidManifest ...

  2. C语言字符编码处理

    一.字符编码识别 1.简介 uchardet是一个开源的用于文本编码检测的C语言库,其功能模块是用C++实现的,通过一定数量的字符样本独立的分析出文本的编码,当前已经支持UTF-8/GB13080/B ...

  3. Devexpress VCL Build v2013 vol 13.2.2 发布

    devexpress 2013 的第二个大版本出来了,一如既往, 基本上还是一个大补丁包.各位看官,自己看. What's New in 13.2.2 (VCL Product Line)   New ...

  4. wCF 问题收集页

    1.设置最大序列化集合元素个数 http://msdn.microsoft.com/zh-cn/library/system.runtime.serialization.datacontractser ...

  5. ScreenCapture手动卸载教程-Xproer.ScreenCapture

    此教程包含WindowsXP,Windows7(x86) ,Windows7(x64),Firefox,Chrome卸载教程. 1.1. 手动卸载控件-Windows XP 主要步骤如下: 1.关闭所 ...

  6. 用Swift实现一款天气预报APP(二)

    这个系列的目录: 用Swift实现一款天气预报APP(一) 用Swift实现一款天气预报APP(二) 用Swift实现一款天气预报APP(三) 上篇中主要讲了界面的一些内容,这篇主要讨论网络请求,获得 ...

  7. Github 的注册教程和初步使用体验

    我叫许晴,是网工143的学生,学号是1413042064,兴趣包括手绘,看书和手游.学习过c++和汇编语言课程,但在编程方面没什么独立实践经验. 我的Githup用户名是 XQ123 .下面是我在gi ...

  8. Solr相似度算法二:Okapi BM25

    地址:https://en.wikipedia.org/wiki/Okapi_BM25   In information retrieval, Okapi BM25 (BM stands for Be ...

  9. Navicat 连接阿里云RDS

    背景: Navicat 是一个非常优秀与易用的数据库可视化管理软件,相信很多人都用过.这次服务器升级,数据库用了阿里云的RDS,阿里云自带的数据库管理面板功能有限,用不习惯.所以还是想着用 Navic ...

  10. Caffe任务池GPU模型图像识别

    一开始我在网上找demo没有找到,在群里寻求帮助也没有得到结果,索性将网上的易语言模块反编译之后,提取出对应的dll以及代码,然后对照官方的c++代码,写出了下面的c#版本 /*** * @pName ...