美文网首页
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