2020.4.29 Django模型

发布于 2020-04-29  75 次阅读


Table of Contents

  • p.name 进程名称
  • p.pid 对应子进程Pid
  • p.is_alive() 查看子进程是否活着
  • p.daemon 设置父进程退出,子进程也退出,
    • 要在start()前设置
    • 通常join() 和 p.daemon只使用一个
  • multiprocessing 进程池使用

    • 为什么要使用进程池

      • 1.重复的创建进程,销毁进程,占用资源
      • 2.任务众多的时候,频繁创建销毁,计算机压力过大
    • 进程池的原理:

      • 创建指定个数的进程,等待执行任务,可以重复利用
    • 创建进程池的方法

      • 1.导入Pool
        • from multiprocessing import Poll
        • Pool([processes]) processes参数是进程数量,默认是系统自动判定
      • 2.将事件加入到进程池队列
        • pool.apply_async(target,args,kwds)
        • 参数说明
          • target 是一个函数
          • args kwds是函数的参数 , args类型是一个元组
          • 注意这里第二个参数是kwds,类型是一个字典
          • 一定要注意参数个数
        • 返回值:返回函数事件对象
      • 3.关闭进程池
        • pool.close()
        • 先关闭进程池,关闭之后就不能加入新的进程
      • 4.回收进程池
        • pool.join()
  • 2.灵感代办

    • 线程的复习
    • 函数式开发复习

    3.学习内容

    • Django静态文件使用

      • Django静态文件

        • 不能和服务器交互(例如js,css,图片,音视频)
      • 静态文件配置

        • settings.py中(配置路由访问地址,跟文件所存实际地址)
          • 设置STATIC_URL=’路由地址‘
          • 设置STATICFILES_DIRS=(os.path.join(BASE_DIR,'static'),)
      • 访问静态文件

        • 1.静态路径直接访问
          • <\img src="http://127.0.0.1:8000/static/images/lena.jpg">
        • 2.标签访问
          • 1.加载static目录 {% load static%}
          • 2.使用静态资源 {% static ‘路径’ %}
    • Django APP

      • 什么是应用

        • 模块化开发,将相应模块写到一个地方,易于管理
        • 可以包含自己的路由,视图
        • 使用include(“包名”)来转发urls
      • 如何创建应用

        • python manage.py startapp 应用名称
      • Django应用结构组成

        • migrations 保存数据迁移的中间文件
        • __init__ 包路径的默认文件
        • admin.py 应用后台管理配置文件
        • apps.py 应用属性配置文件
        • models.py 与数据库相关模型映射文件
        • tests.py 应用单元测试文件
        • views.py 定义视图处理函数文件
      • 配置安装应用APP

        • settings.py文件中
        • INSTALLED_APPS = [ ‘自定义应用名称’ ]
      • Django 应用的路由分布式

        • url(r'^news/',include('news.urls')),
        • urls文件需要自己创建
    • Django 数据库和模型

      • 数据库配置文件

        • 在settings.py中的DATABASES变量中
        • ‘default’ = {‘ENGINE’:””,
          • ’NAME’:’databaseName’
          • ‘USER’:’用户名’
          • ‘PASSWORD’:’密码‘
          • ‘HOST’:’主机地址’
          • ‘PORT’:端口号
        • }
      • 数据库后端引擎(django.db.backends.)

        • mysql 、sqlite、oracle、postgresql
      • 数据名命名方式

        • APP名称_类名(小写)
      • pymsql支持

        • 写在项目根目录的init中
          • import pymysql
          • pymysql.install_as_MySQLdb()
        • django2.2以上 ,不支持pymysql
      • models模块使用

        • 类要继承model.Model

        • FIELD_TYPE 字段类型

          • 作用:创建指定的字段
          • BooleanField() 真假
          • CharField() varchar 必须执行max_length=数字
          • DateField() 数据库类型 date
            • 参数:DateField.auto_now 自动设置该字段为当前时间(True/False)
            • 参数:DateField.auto_now_add 第一次被创建就设置当前时间(True/False)
            • 参数:DateField.defalut 设置当前时间(True/False)
            • 以上参数只能选一个使用
          • DateTimeField() 数据库类型 datatime()
          • DecimalField() 数据库类型decimal(x,y)
            • DecimalField.max_ddigits:位数总数
            • DecimalField.decimal_places:小数点后面数字数量
          • FloatField() 数据库类型 double()
          • TextField() 数据库类型longtext
        • FIELD_OPTIONS 字段选项

          • 作用:创建列时候做修饰,多个选项用,隔开
          • primary_key (True,False) 是否设置主键,主键就不能null和unique
          • null (True,False) 是否可以设置为空
          • default ’默认值‘ 给字段设置一个默认值
          • db_index (True,False) 是否增加索引
          • unique (True,False) 是否设置值为一
          • db_column 指定一个列名,不指定就使用属性名
      • 数据库的迁移:

        • 迁移就是将py写好的模型,同步到数据库
        • 1.生成更新文件: makemiarations
        • 2.执行迁移脚本: migrate
      • 执行迁移失败处理

        • 1.删除所有APP下migrataions下的000开头的Py文件
        • 2.删除mysql的数据表,或者数据库
        • 3.重新执行命令/重新创建数据库
      • 数据库的操作(CURD操作)

        • 数据库的增删改查通过模型管理器实现
        • 模型管理器:
          • 自己创建的类.objects
      • 创建数据对象

        • 原理:通过python对象 和数据库做映射
        • 创建方法:
          • 1.自己定义的模型类.objects.create(属性=值,属性=值)
            • 一个create 就代表数据库的一条记录
          • 2.创建对象(自己定义的类)调用save() 保存
          • 3.使用字典创建对象,并调用save()进行保存
            • 就是传递参数时候用**kwargs

    4.扩展延伸知识

    5.知识内容个人梳理

    6.今天都复习了之前的什么内容