django 之数据库小记

数据库生成对应models

python mysite/manage.py inspectdb > mysite/myapp/models.py

新建项目

django-admin.py startproject learn_models # 新建一个项目
cd learn_models # 进入到该项目的文件夹
django-admin.py startapp people # 新建一个 people 应用(app)

数据库与models关联

django 默认使用的sqllite,如果要在项目中使用mysql,需要安装新的模块,比如mysqlclient,或者pymysql,貌似mac上使用mysqlclient会方便很多
1. models生成数据库,不同版本的会有不同的指令,当然建议使用高版本,有些从models的改变没法自动生成数据库文件的,在系版本django中有一些不同

先 cd 进入 manage.py 所在的那个文件夹下,输入下面的命令

## Django 1.6.x 及以下
python manage.py syncdb

## Django 1.7 及以上的版本需要用以下命令
python manage.py makemigrations
python manage.py migrate
python manage.py migrate --run-syncdb
  1. 数据库生成model
    • 配置数据库
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', 
        'NAME': 'mydb',                     
        'USER': 'root',                
        'PASSWORD': 'password', 
        'HOST': '127.0.0.1',
        'PORT': '3306', 
    }
}
  1. 数据库创建models
    比如重定向到一个models.py的文件中

    python manage.py inspectdb > mysite/myapp/models.py

  2. 数据库的编码问题:

在mysql中存在着各种utf8编码格式,如下表:

        1)utf8_bin

        2)utf8_general_ci

        3)utf8_general_cs

        utf8_bin将字符串中的每一个字符用二进制数据存储,区分大小写。

        utf8_genera_ci不区分大小写,ci为case insensitive的缩写,即大小写不敏感。

        utf8_general_cs区分大小写,cs为case sensitive的缩写,即大小写敏感

更多文献:hxf.space

你可能感兴趣的:(django,python,django开发常见坑点)