• 11 ORM简介


    编辑本博客

    yuan先生博客

    创建models

    数据类型
    • AutoField:自增数据段
    • CharField:字符串,max_length
    • DateField:日期
    • DecimalField:小数,max_digits,decimal_places
    • FileField:upload_to='avatars/'文件保存目录,default='avatars/default.png'指定默认值
    • ImageField
    • verbose_name:别名

    获取数据别名:

    models.UserInfo._meta.get_field('title').verbose_name即可获取UserInfo表title字段的verbose_name

    media文件配置见cnblog项目

    FileField类型的参数和ImageField类型参数类似

    • 必须接收文件对象,ImageField必须是图片。在传入文件对象的时候,django会自动下载该文件,并保存到upload_to文件夹中,如果没有改文件夹则自动创建
    • 如果配置过media文件夹,则将文件保存在media文件夹下
    • 在数据库中存放的是该文件的相对路径,而非文件对象
    参数
    • primary_key添加主键约束字段
    • unique唯一性约束
    • verbose_name详细显示名称

    配置数据库

    setting.py

    DATABASES={
        "default":{
            "ENGINE":'django.db.backends.mysql',
            'NAME':'orm',
            'USER':'root',
            "PASSWORD":'123.com',
            'HOST':'127.0.0.1',
            'PORT':3306
        }
    }
    View Code

    Django默认导入的是MySQLdb,但是MySQLdb在py3上支持有问题,py3用pymysql,所以需要在项目__init__.py文件中添加如下代码

    import pymysql
    pymysql.install_as_MySQLdb()
    View Code

    INSTALLED_APP中注册app

    由模型生产表

    python manage.py makemigrations
    python manage.py migrate

    即迁移数据库

    数据库中生成的表

    打开ORM操作日志,需在setting中添加如下代码

    LOGGING = {
        'version': 1,
        'disable_existing_loggers': False,
        'handlers': {
            'console':{
                'level':'DEBUG',
                'class':'logging.StreamHandler',
            },
        },
        'loggers': {
            'django.db.backends': {
                'handlers': ['console'],
                'propagate': True,
                'level':'DEBUG',
            },
        }
    } 
    View Code
  • 相关阅读:
    数组塌陷现象
    深浅拷贝的区别
    冒泡排序,选择排序的应用
    JavaScript双重循环的嵌套
    Css Grid网格布局
    css3动画详细介绍
    Python tkinter Label Widget relief upload image
    XXXFD
    XXX1
    Python爬取一个简单网页的HTML代码
  • 原文地址:https://www.cnblogs.com/yaya625202/p/9240519.html
Copyright © 2020-2023  润新知