07 -模型层ORM

1、orm简介

 

2、

models.py

from django.db import models

# Create your models here.


class Book(models.Model):
    id = models.AutoField(primary_key=True)
    title = models.CharField(max_length=32, unique=True)
    state = models.BooleanField()
    pub_date = models.DateField()
    price = models.DecimalField(max_digits=8, decimal_places=2)   # 999999.00
    publish = models.CharField(max_length=22)                     # 10000000.00  溢出
C:\Windows\system32>mysql -uroot -proot

mysql> create database orm;      # 创建orm数据库
Query OK, 1 row affected (0.00 sec)

settings默认sqlite3数据库

设置database为mysql 

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'orm',            # 要连接的数据库,连接前需要创建好
        'USER': 'root',           # 连接数据库的用户名
        'PASSWORD': 'root',          # 连接数据库的密码
        'HOST': '127.0.0.1',     # 连接主机,默认本级
        'PORT': 3306,            # 端口 默认3306
    }
}

  (3)django调用的是pymysql

__init__.py

import pymysql

pymysql.install_as_MySQLdb()

 注意3:如果报错的话

django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.3 or newer is required; you have 0.7.11.None

  

注意4: 如果想打印orm转换过程中的sql,需要在settings中进行如下配置:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console':{
            'level':'DEBUG',
            'class':'logging.StreamHandler',
        },
    },
    'loggers': {
        'django.db.backends': {
            'handlers': ['console'],
            'propagate': True,
            'level':'DEBUG',
        },
    }
}  

最后通过两条数据库迁移命令即可在指定的数据库中创建表 :

python manage.py makemigrations
python manage.py migrate

注意2:确保配置文件中的INSTALLED_APPS中写入我们创建的app名称

 

4

猜你喜欢

转载自www.cnblogs.com/venicid/p/9248852.html
07
今日推荐