• 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
  • 相关阅读:
    类别的三个作用
    require()
    commonJS
    ng-app&data-ng-app
    《css网站布局实录》(李超)——读书札记
    高性能JS(读书札记)
    两个同级div重叠的情况
    前端性能优化
    正则表达式
    ajax
  • 原文地址:https://www.cnblogs.com/yaya625202/p/9240519.html
Copyright © 2020-2023  润新知