day17-Django的APP以及目录介绍

一、前言

  之前我们说过了通过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 cmdb

D:\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 models

admin.site.register(models.UserInfo)
admin.site.register(models.UserType)

④初始化数据库

python manage.py makemigrations
python manage.py migrate  #django2.0之前是makemigrate

⑤创建超级用户

python manage.py createsuperuser

 然后登陆:127.0.0.1:8000/admin,登陆后台

posted @ 2018-02-11 11:03  帅丶高高  阅读(277)  评论(0编辑  收藏  举报