2019独角兽企业重金招聘Python工程师标准>>>
项目准备
创建项目
django-admin startproject Mydjango
cd Mydjango
python manage.py startapp APP
生成数据表
python manage.py makemigrations APP
python manage.py migrate
配置文件
admin.py
#coding=utf8
from django.contrib import admin
from .models import * # 引入models模块
admin.site.site_title = 'Django后台管理程序' # 站点标题,默认名称【站点管理】
admin.site.site_header = 'MyDjango' # 站点头部名称,默认名称【Django管理】
class Personnel_Table_Custom(admin.ModelAdmin): # 自定义类--自定义显示表信息
list_display = ("id","Name","Per_City","Date") # 自定义显示字段
list_editable = ("Name",) # 自定义显示字段设定可编辑
list_per_page = 10 # 分页显示行数
list_filter = ('Per_City',) # 列表过滤选项
filter_horizzontal = ('Name',) # 自定义添加字段搜索(下拉多选使用)
search_fields = ('Name',) # 根据字段搜索
ordering = ("id",) # 以 id 字段排序,默认升序,降序字段前加-,设置第二排序后再跟字段
class City_Table_Custom(admin.ModelAdmin): # 自定义类--自定义显示表信息
list_display = ("id", "City") # 自定义显示字段
list_editable = ("City",) # 自定义显示字段设定可编辑
admin.site.register(Personnel_Table,Personnel_Table_Custom) #admin中添加表信息,(models.表名,自定义类名)
admin.site.register(City_Table,City_Table_Custom)
# 如果直接添加表名无选择自定义类,则默认全部显示
# admin.site.register(City_Table)
apps.py
from django.apps import AppConfig
class AppConfig(AppConfig):
name = 'APP'
models.py
# coding=utf8
from django.db import models
# Create your models here.
class Personnel_Table(models.Model): #人员表
id = models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='编号') # 创建主键,自增长、设置主键、无序列号设置、并创建别名
Name = models.CharField("姓名",max_length=20,null=False) # 创建字符串字段,最大长度为20,并创建别名,且不能为空
Date = models.DateField("日期") # 创建日期字段
Per_City = models.ForeignKey("City_Table",on_delete=models.CASCADE,verbose_name='城市') # 一对多关联表
def __str__(self): # 类str方法,用于调取显示字符串而不是内存地址
return self.Name
class Meta:
verbose_name = "人员" # 表的别名
verbose_name_plural = "人员" # 表的复数别名,如果只有别名无复数表名默认显示名称后自动添加字母s
class City_Table(models.Model): #城市表
id = models.AutoField('序号',auto_created=True, primary_key=True, serialize=False) # 创建主键,自增长、设置主键、无序列号设置、并创建别名
City = models.CharField(max_length=20,verbose_name="城市") # 创建字符串字段,最大长度为20,并创建别名
def __str__(self): # 类str方法,用于调取显示字符串而不是内存地址
return self.City
class Meta:
verbose_name = "城市" # 表的别名
verbose_name_plural = "城市" # 表的复数别名,如果只有别名无复数表名默认显示名称后自动添加字母s
views.py
# coding=utf8
from django.shortcuts import render
# Create your views here.
settings.py
INSTALLED_APPS
'APP',
TEMPLATES
'DIRS': [os.path.join(BASE_DIR, 'APP/templates')],
LANGUAGE_CODE
LANGUAGE_CODE = 'zh-hans'
#中文显示
TIME_ZONE
TIME_ZONE = 'Asia/Shanghai'
#时区设置
服务运行测试
创建用户名密码
python manage.py createsuperuser
运行服务
python manage.py runserver
访问地址
http://127.0.0.1:8000/admin
扩展说明
中文显示
后台综合中文显示
setting中设置,后台中文显示【但不包含表名,APP名称等】
'django.middleware.locale.LocaleMiddleware',
#中间件中添加
或
LANGUAGE_CODE = 'zh-hans'
#语言设置
app中文显示
app下的__init__,app别名后台中显示
# coding=utf8
from django.apps import AppConfig
default_app_config = 'APP.IndexConfig' #默认app配置变更
class IndexConfig(AppConfig): #重写IndexConfig类
name = 'APP' #应用名称
verbose_name = '主管理菜单' #应用别名(admin后台显示名称)
表名中文显示
models中设置,表名,后台中文显示
class Meta:
verbose_name = "城市"
verbose_name_plural = "城市"
字段名中文显示
models中设置,字段名,后台中文显示
Name = models.CharField("姓名",max_length=20,null=False)
或
Name = models.CharField(max_length=20,null=False,verbose_name="姓名")