django与MySQL

扫码查看

django2.1新手教程

http://www.liujiangblog.com/blog/36/

数据库同步操作

https://www.jianshu.com/p/22aa7cca7ff6

自动生成sql语句

django会根据setting.py中指定的数据库自动生成sql语句:

    python manage.py makemigrations

查看自动生成的sql语句

python manage.py sqlmigrate 【appname】 【no】
例:python manage.py sqlmigrate myblog 0001

自动同步到数据库

python manage.py migrate

bug: MySQL Strict Mode

WARNINGS:
    ?: (mysql.W002) MySQL Strict Mode is not set for database connection 'default'
    HINT: MySQL's Strict Mode fixes many data integrity problems in MySQL, such as data truncation upon insertion, by escalating warnings into errors. It is strongly recommended y
    ou activate it. See: https://docs.djangoproject.com/en/2.1/ref/databases/#mysql-sql-mode
解决方法1

在settings中,在DATABASES变量定义处下面添加

    DATABASES['OPTIONS']['init_command'] = "SET sql_mode='STRICT_TRANS_TABLES'"
解决方法2

bug: 无法自动生成表

Running migrations: No migrations to apply.

solution
  • 第一步: 删除该app名字下的migrations文件(migration文件夹中的000x-initial.py文件,存储了自动生成的sql创表语句)。
  • 第二步: 进入数据库,找到django_migrations的表,删除表中app字段为该app名字的所有记录。
  • 第三步: pycharm的Terminal中执行python manage.py makemigrations python manage.py migrate

bug:No module named ‘MySQLdb’

solution1

用pymysql代替。在项目文件夹下的init.py(settings.py也可以?)添加如下代码即可

solution2
  • step1: 安装mysqlclient, MySQLdb的分叉版本,加入了对python3的支持。mysqlclient下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/
  • step2: 下载该文件后在下载文件所在目录运行cmd(或运行cmd后切换到该文件目录下),执行 pip install mysqlclient

原文:大专栏  django与MySQL


01-26 08:51
查看更多