第19篇 Django实战篇,从0到1构建应用,设计Model
文章标签:
html案例
项目还是sales,不用重新构建,也不用改任何配置。构建应用department,可用开发工具,也可用python3 manage.py startapp department命令完成。
19.1 构建应用
新建urls.py、新建templates文件夹和静态文件夹static,完成之后目录如下。
在Django中,静态文件是指图片、Css、js等文件,这些文件分别放在static文件夹下的images、css、js目录中。在模板文件中,要使用的话时,使用static标签进行引入。
它们是通过
django.contrib.staticfiles框架进行统一管理的,在寻找时,去掉外层static,一旦找到就直接返回,如果有重名的,返回的内容可能不是你想要的,为了解决这个问题,在static下新建以应用名称(department)命名的文件夹即可。
如果想要新建的应用启动(static等),需要到settings.py,的INSTALLED_APPS节点中进行配置。经过之前的多次动手实践,你的配置内容应该是这样的:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'base', 'product', 'department', ]
核对确认相关配置没问题后,就可以进入设计Models阶段。
19.2 设计models
有了《数据字典》,model的设计轻松了不少,主要找出数据表的数据类型对应的类型属性就好了,有关department/models.py的内容端上来。
from django.db import models import django.utils.timezone as timezone class Department(models.Model): name = models.CharField(max_length=120, verbose_name='部门名称') leader = models.CharField(max_length=60, verbose_name='负责人') phone = models.IntegerField(verbose_name='手机号') region = models.CharField(max_length=60, verbose_name='区域') address = models.CharField(max_length=200, null=True, blank=True, verbose_name='地址') longitude = models.DecimalField(max_digits=9, decimal_places=6, null=True, blank=True, verbose_name='经度') latitude = models.DecimalField(max_digits=8, decimal_places=6, null=True, blank=True, verbose_name='纬度') createDate = models.DateTimeField(default=timezone.now, verbose_name='创建日期')
就这样,model(数据表)就设计好了。有关数据迁移和生成数据表的命令还记得么?如果忘记了也不要紧。我拷贝过来了。
python3 manage.py makemigrations department python3 manage.py migrate department
生成数据表的同时,有关数据库操作的API也生成了。别忘记做单元测试哦。
好了,有关项目的搭建,就这样悄无声息的完成了,实在可喜可贺。接下来要说的是有关于Form的实现,详情请见下一节。