Django默认ORM(一):基本配置

 ORM基本点

ORM:关系对象映射。

定义一个类自动生成数据库的表结构。
数据库表数据类型:
            数字、
            字符串
            时间。

ORM分为两种:
	DB First 数据库里先创建数据库表结构,根据表结构生成类,根据类操作数据库
	Code First 先写类代码,执行代码创建数据库表结构     
    
主流的orm都是code first。
django 的orm也是code first

所以Django orm:
	根据类自动创建数据库表
	根据类对数据库表中的数据进行各种操作                                                

  

在app下的models虾面写表类

from django.db import models

class UserInfo(models.Model):  
    # 必须继承models.Model
    # django默认创建ID列,自增,主键
    # 用户名列,字符串类型,指定长度
    username = models.CharField(max_length=32)
    password = models.CharField(max_length=64)

  

别忘了注册app

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'xxxxxx',            # 这里添加app的name
]

 

执行命令生成表结构

python manage.py  makemigrations    # 生成migrations临时文件
python manage.py  migrate           # 根据migrations直接生成数据库

  

修改配置文件,如果用sqllite就用上面配置,用mysql  就用虾面配置

# https://docs.djangoproject.com/en/1.10/ref/settings/#databases  官网文档


# DATABASES = {             # sqlite 默认
#     'default': {
#         'ENGINE': 'django.db.backends.sqlite3',
#         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
#     }
# }

# mysql 注意提前手动建立数据库
DATABASES = {             
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '数据库名',
        'USER': '用户名',
        'PASSWORD': '密码',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }

  

redis 的默认端口号是6379

 

Django默认使用MySQLdb模块链接MySQL,但python3现在还没有MySQLdb,

所以改为用pymysql去连。在project项目名下的__init__.py里面写上虾面的语句 

import pymysql
pymysql.install_as_MySQLdb()

  

这样子,模块就会根据配置文件连接数据库,根据models.py 创建数据库表,并加之增删改查。

 

posted @ 2017-09-22 12:40  Adamanter  阅读(213)  评论(0编辑  收藏  举报