一、前言
之前我们说过了通过django-admin 创建一个项目,也可以用pycharm创建一个django项目,但是如果说我们现在有很多业务线,比如说 cmdb ,OpenStack 等等,但是他们用的是同一个数据库,在同有一个项目下,那怎么办呐?django已经帮你设计了一套规则,这个规则的最外层是 project ,在project中创建app,也就是说app是依附在project上的。
二、原理图
三、创建Django的app
3.1、创建app
说明:因为django的app是寄生在某个project中,所以是在project下,用 python mange.py startapp appname 的方式去创建,创建如下:
D:\PycharmProjects\51home\day18_django>python manage.py startapp cmdbD:\PycharmProjects\51home\day18_django>python manage.py startapp openstack
如图:
3.2、把具体的某个函数放到具体的app中
说明:view.py是专门给app中存放这个处理的函数的。
urls的导入cmdb的views模块中的home函数。
然后重新启动 django 项目程序,并且在浏览器中输入,你的ip:端口号 /h.html
四、app目录介绍
4.1、目录介绍
说明:views是真正写代码的地方,其他的目录或者文件都是做配置用的
app -- migrations #数据库修改表结构的记录 -- admin #django 为我们提供的后台管理 -- apps #配置当前app的,暂时用不到 -- models #ORM,写指定的类,通过命令可以创建数据库结构 -- tests #单元测试 -- views #业务代码
4.2、练习
①在cmdb的models中创建 UserInfo类和UserType 类
class UserType(models.Model): name = models.CharField(max_length=30)class UserInfo(models.Model): username = models.CharField(max_length=32) pwd = models.CharField(max_length=32) email = models.CharField(max_length=32) user_type = models.ForeignKey(UserType,on_delete=models.CASCADE,) #注意了,on_delete=models.CASCADE,是django2.0有的特性,2.0之前不需要
②在项目中settings.py中添加 cmdb app
③在cmdb的admin中,注册两个站点
from cmdb import modelsadmin.site.register(models.UserInfo)admin.site.register(models.UserType)
④初始化数据库
python manage.py makemigrationspython manage.py migrate #django2.0之前是makemigrate
⑤创建超级用户
python manage.py createsuperuser
然后登陆:127.0.0.1:8000/admin,登陆后台