一、创建项目
1.1 创建项目和app
django-admin startproject myproject
python manage.py startapp myapp
1.2 设置时区和语言
Django默认使用美国时间和英语,在项目的settings文件中,如下所示:
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
1.3 启动
运行测试一下工程,在本机的浏览器中访问 http://127.0.0.1:8000/
二、设计数据模型
2.1 数据库模型设计
设计用户模型类
- 用户名
- 密码
- 邮箱地址
- 性别
- 创建时间
进入models.py,代码如下
# models.py
from django.db import models
class User(models.Model):
'''用户表'''
gender = (
('male','男'),
('female','女'),
)
name = models.CharField(max_length=128,unique=True)
password = models.CharField(max_length=256)
email = models.EmailField(unique=True)
sex = models.CharField(max_length=32,choices=gender,default='男')
c_time = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.name
class Meta:
ordering = ['c_time']
verbose_name = '用户'
verbose_name_plural = '用户'
各字段含义:
- name必填,最长不超过128个字符,并且唯一,也就是不能有相同姓名;
- password必填,最长不超过256个字符(实际可能不需要这么长);
- email使用Django内置的邮箱类型,并且唯一;
- 性别使用了一个choice,只能选择男或者女,默认为男;
- 使用__str__帮助人性化显示对象信息;
- 元数据里定义用户按创建时间的反序排列,也就是最近的最先显示;
注意:这里的用户名指的是网络上注册的用户名,不要等同于现实中的真实姓名,所以采用了唯一机制。如果是现实中可以重复的人名,那肯定是不能设置unique的。
2.2 设置数据库为Mysql
#settings.py
DATABASES = { 'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'database', #数据库名字
'USER': 'root', #账号
'PASSWORD': '123456', #密码
'HOST': '127.0.0.1', #IP
'PORT': '3306', #端口
}
}
init.py里面导入pymysql模块
# init.py
import pymysql #导入
pymysql.install_as_MySQLdb()
2.3 数据库迁移
注册app
#seting.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp',
]
迁移到数据库
python manage.py makemigrations
python manage.py migrate
三、admin后台
3.1在admin中注册模型
# admin.py
from django.contrib import admin
from . import models
admin.site.register(models.User)
3.2 创建超级管理员
python manage.py createsuperuser