搭建流程实际上在官方文档里都有写了,这里整理一下简要流程。
官方文档地址:
Django文档
编写你的第一个 Django 应用,第 1 部分
安装django
pip install django==2.2
建议: 以下命令行操作在新建的空白目录下进行更方便,cmd或shell所用命令均相同
1、创建项目
这一步会在当前所处目录下新建一个projectName
的文件夹,并在其下创建一个同名文件夹,其中包含settings.py
、urls.py
、wsgi.py
等项目相关文件。
django-admin startproject projectName
2、创建应用
这一步会在项目文件夹下创建一个appName
文件夹,包含admin.py
、apps.py
、tests.py
、views.py
、models.py
等文件。分别用于管理(admin和apps)、测试(tests)、视图(views)、对象模型/表(models)的代码编写。
cd projectName
django-admin startapp appName
执行后,打开projectName/settings.py
文件,找到INSTALLED_APPS
所在位置,在其后的中括号里加上'appName.apps.appNameConfig',
,保存。如下:
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
"appName.apps.appNameConfig",
]
在生成的models.py
可以写所需的class模型,若想避免多个模型放在一个文件里不易查看编写,也可以将models.py
删除,新建models
文件夹,并在其下新建__init__.py
后写上from .ClassName import ClassName
。
# models __init__.py
from .ClassName import ClassName
3、编写模型
django提供了丰富多彩的字段类型,可以在Django-模型字段参考中查看对照
文档仅被汉化很少的部分,建议直接右侧目录查看大概后再挑选进去查看
在实际使用中只用到比较常见的几种类型,这里记一些示例写法
import django.db import models
import django.utils.timezone as timezone
class ClassName(models.Model):
className = models.Manager()
columnName = models.CharField('字段名',max_length=200)
columnName2 = models.CharField(max_lengt=100,db_index=True) # 加索引
columnName3 = models.CharField(max_length=20,default='localhost')
columnName4 = models.CharField(max_length=20,blank=True)# 是否允许空白
columnName5 = models.IntegerField()
columnName6 = models.BooleanField('字段名6',default=False)
columnName7 = models.DateTimeField('操作时间',auto_now=timezone.now)
columnName8 = models.TextField()
def __str__(self):
return self.columnName
def myDefineFunction(self): # 自行编写的自定义方法
return ''
写完后,回到cmd或者shell的窗口里,执行以下命令:
python manage.py migrate
python manage.py makemigrations
日后若对模型有字段增删修改,或新增模型,在修改完
models.py
或对应models\model.py
文件后同样执行以上两步操作即可
4、把模型表加到后台管理
如果缺少这一步,后面使用python manage.py runserver 0.0.0.0:8080
启动项目后,无法在localhost:8080/admin
中查看自己新建的表。
编辑app\admin.py
文件,加入以下内容保存
# 如果是全部写在models.py文件里的用这一句
from .models import ClassName
# 如果是单独models文件夹的用这一句
import .models.ClassName import ClassName
# 一个模型写一句
admin.site.register(ClassName)
# 以上内容加入后后台表不会有查询框提供,故可用以下配置
class ClassNameAdmin(admin.ModelAdmin):
search_fields=('columnName','columnName1','columnName2','columnName3')
list_display = ('columnName','columnName1','columnName2','columnName3')
admin.site.register(ClassName,ClassNameAdmin)
# 如果要使原生英文的后台标题展示为中文,可以修改站点别名
admin.site.site_header = '管理后台'
admin.site.site_title = '后台'
admin.site.index_title = '我的管理后台'
5、运行项目
python manage.py runserver 0.0.0.0:8080