龙空技术网

第19篇 Django实战篇,从0到1构建应用,设计Model

老陈说编程 735

前言:

目前朋友们对“django 不同app间model引用”大体比较注意,兄弟们都想要学习一些“django 不同app间model引用”的相关知识。那么小编同时在网上网罗了一些关于“django 不同app间model引用””的相关文章,希望各位老铁们能喜欢,同学们一起来了解一下吧!

项目还是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 modelsimport django.utils.timezone as timezoneclass 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 departmentpython3 manage.py migrate department

生成数据表的同时,有关数据库操作的API也生成了。别忘记做单元测试哦。

好了,有关项目的搭建,就这样悄无声息的完成了,实在可喜可贺。接下来要说的是有关于Form的实现,详情请见下一节。

标签: #django 不同app间model引用