美文网首页
django开发流程01--模型(model)

django开发流程01--模型(model)

作者: SgRMrLi | 来源:发表于2019-04-02 19:07 被阅读0次

1. django(MVT)开发基本流程

  1. 视图views: 接受请求,逻辑处理, 调用数据,输出响应
  2. 配置urls: 在相应的应用(app)中配置url(正则表达式,视图的名称)
  3. 模型models(django内部): 负责数据库交互, 模型对象,列表
  4. 定义模型(model.py)类: 指定属性和类型, 以确定表的结构, 执行迁移,生成迁移文件
  5. 后台管理(djang内部): 创建管理员, 启动服务器, 在admin.py中完成模型类注册
  6. 模板templates: 定义显示的样式, 加载(读取文件内容到内存);渲染页面

2. 模型(model)

2.1. 需要理解ORM(Object Relational Mapping,即对象-关系-映射)
2.2. 配置数据库(django支持当前主流关系型数据库, 本次以MySQL为例), 需要提前在mysql中创建数据库

2 . 2. 1创建数据库

  1. mysql -uroot -p 登录数据库
  2. create database test1 charset=utf8; 创建test1数据库
  3. use test1; 切换到test1数据库
  4. show tables; 查看有几张表(因为是新建所以为空)

2. 2. 1配置数据库

  1. 在settings.py文件中DATABASES列表中进行相关配置
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        'NAME': 'test1',  # 数据库名称
        'USER': 'root',  # 登录mysql时的用户名
        'PASSWORD': '.....',  # 你自己的登录密码
        'HOST': 'localhost',  # 数据库服务器ip地址(本机localhost或者127.0.0.1均可)
        'PORT': 3306,  # 端口3306
    }
}

2.3 创建应用python manege.py startapp 应用名称, 并将应用添加到settings.py文件的 install_apps 列表中

3 模型中的具体字段类型,参考django官方文档: https://docs.djangoproject.com/en/2.2/ref/models/fields/

4 模型成员(管理器是模型类的属性)

  1. 自定义管理器, 在models.py文件中创建一个xxxManager(models.Models): 类
  2. 自定义管理器作用(用于将对象与数据表映射): 1.更改默认查询集的结果;2.定义模型类的创建方法; 代码如下:
class BookInfoManager(models.Manager):
    '''自定义管理器:和数据库做交互'''
    def get_queryset(self):
        return super(BookInfoManager, self).get_queryset().filter(
            isDelete=False
        )  # 删选删除的结果(自定义管理器)
    
    def create(cls, btitle, bpud_date):
        '''自定义创建模型类方法'''
        b = BookInfo()
        b.btitle = btitle
        b.bpub_date = bpud_date
        b.bcomment = 0
        b.bread = 0
        b.isDelete = False
        return b

5 查询

1 查询集

  1. 1 惰性执行: 创建查询集不会带来任何数据库的访问, 直到调用数据时, 才会访问数据库
    1.2 查询集的方法:成为过滤器; 分别有all(), filter(), exclude(), order_by(), values()

2 字段查询:(比较运算符,F对象,Q对象)

相关文章

网友评论

      本文标题:django开发流程01--模型(model)

      本文链接:https://www.haomeiwen.com/subject/owstbqtx.html