项目APP设计
- users-用户管理
- course-课程管理
- organization-机构和教师管理
- operation-用户操作管理
新建项目
- 新建项目及App
- 新建数据库
-
配置settings文件(78行开始)
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'HOST':'127.0.0.1', 'POST':3306, 'NAME':"mxzhao", 'USER':'******', 'PASSWORD':'******', } }
- 启动Django,并访问测试
新建应用APP
- 可以在新建项目的时候添加一个APP
- 可以在Tool--Run manage.py Task,进入命令行执行 startapp ‘应用名称’即可
- 新建后的app需要在settings.py文件中注册
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'users.apps.UsersConfig', 'operation', 'courses', 'organization' ]
扩展user表
- django框架本身存在自带user信息表,根据项目实际需要扩展该表。
需要导入模块AbstractUser,新建的user表需要继承AbstractUser
class UserProlfile(AbstractUser): nick_name = models.CharField(max_length=50,verbose_name="昵称",default="") birday = models.DateField(verbose_name="生日",null=True,blank=True) gender = models.CharField(choices=(("male","男"),("female","女")),default="female",max_length=5) address = models.CharField(max_length=100,default="") mobile = models.CharField(max_length=11,null=True,blank=True) image = models.ImageField(upload_to="image/%Y%m",default="image/default.png",max_length=100) class Meta: verbose_name = "用户信息" def __str__(self): return self.username
- 因为扩展user了,需要在settings文件中设置使用新的user表做验证
AUTH_USER_MODEL='users.UserProlfile' # 根据实际填写
ORM常用字段和参数
常用字段
- AutoField:int自增列,必须填入参数primary_key=Ture,当model中没有自增列,则自动会创建一个列名为id的列
- IntegerField:一个整数类型,范围在-2147483648 to 2147483647
- CharField:字符类型,必须设置max_length参数,max_length表示字符长度
- DateField:日期字段,日期格式YYYY-MM-DD,相当于python中的datetime.date()实例
- DateTimeField:日期时间字段,格式YYYY-MM-DD HH:MM:SS,相当于Python中的datetime.datetime()实例
- FileField:字符串,路径保存在数据库,文件上传到指定目录,参数 upload_to=“” 上传文件的保存路径,
- ImageField:图片格式信息,参数 upload_to=“” 上传文件的保存路径,
- TextField:文本类型,也是字符串类型,但不用设置max_length
- BooleanField:布尔数据类型
AUTH_USER_MODEL='users.UserProlfile'