搭建流程实际上在官方文档里都有写了,这里整理一下简要流程。
官方文档地址: 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', ,保存。如下:
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 。
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 文件,加入以下内容保存
from .models import ClassName
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
|