Django是基于MVC(Model-View-Controlller)模式的框架,处理请求的示意图
Django文档大体上也分为:Model层、View层、模板层和Form模块。剩下的部分都是功能文档,比如分页和缓存等。
创建环境
创建虚拟环境
激活虚拟环境
pip install django [~=2.0]
创建项目根目录:mkdir student_house
cd student_house
django-admin startproject student_sys
得到下面的目录结构
创建APP
cd student_sys中通过上一步创建好的manage.py创建一个APP:
python manage.py startapp student
现在可以正式编写代码
从Model层开始
在文件student_house/student_sys/student/models.py
from django.db import models
class Student(models.Model):
SEX_ITEMS = [
(1, '男'),
(2, '女'),
(0, '未知'),
]
STATUS_ITEMS = [
(0, '申请'),
(1, '通过'),
(2, '拒绝'),
]
name = models.CharField(max_length=128, verbose_name="姓名")
sex = models.IntegerField(choices=SEX_ITEMS, verbose_name="性别")
profession = models.CharField(max_length=128, verbose_name="职业")
email = models.EmailField(verbose_name="Email")
qq = models.CharField(max_length=128, verbose_name="QQ")
phone = models.CharField(max_length=128, verbose_name="电话")
status = models.IntegerField(choices=STATUS_ITEMS, default=0, verbose_name="审核状态")
created_time = models.DateTimeField(auto_now_add=True, editable=False, verbose_name="创建时间")
def __str__(self):
return '<Student: {}>'.format(self.name)
class Meta:
verbose_name = verbose_name_plural = "学员信息"
再编写admin.py
from django.contrib import admin
from .models import Student
class StudentAdmin(admin.ModelAdmin):
list_display = ('id', 'name', 'sex', 'profession', 'email', 'qq', 'phone', 'status', 'created_time')
list_filter = ('sex', 'status', 'created_time')
search_fields = ('name', 'profession')
fieldsets = (
(None, {
'fields': (
'name', ('sex', 'profession'),
('email', 'qq', 'phone'),
'status',
)
}),
)
admin.site.register(Student, StudentAdmin)
把student这个App放到settings.py中
INSTALLED_APPS = [
'student',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
好了,后台部分完成了。接着,我们通过下面的命令创建表以及超级用户。
cd student_house/student_sys/
python manage.py makemigrations:创建数据库迁移文件
python manage.py migrate:创建表
python manage.py createsuperuser:根据提示,输入用户名、邮箱和密码
通过python manage.py runserver命令启动项目后,访问http://127.0.0.1:8000/admin/
基础配置(中文)
上面的配置应该是英文的,并且时区也是UTC时区
在settings中做如下配置:
LANGUAGE_CODE = 'zh-hans' # 语言
TIME_ZONE = 'Asia/Shanghai' # 时区
USE_I18N = True # 语言
USE_L10N = True # 数据和时间格式
USE_TZ = True # 启用时区
以上admin基本就满足了简单的后台,这也是Django admin被称为“杀手锏”的原因
学员管理系统的前台开发
在student/views.py中编写首页