Heim > Fragen und Antworten > Hauptteil
Meine Umgebung ist: Python3.6 + django1.1 + mysql
Als ich es gelernt habe, habe ich jetzt auf pymysql umgestellt, indem ich Klassen in models.py definiere. Warum schreibe ich so und führe es dann aus
python manage.py makemigrations
python manage.py migrate
Die entsprechende Tabelle wird nicht in MySQL generiert?
巴扎黑2017-06-12 09:25:48
makemigrations, which is responsible for creating new migrations based on the changes you have made to your models.
1.先把sqlite3替换成mysql,其他的代码不变,看能不能生成表.
2.如果使用pymysql,一般不用django内置model来写类对象.因为pymysql是对数据库进行操作,
如
cursor.execute(sql, args)
此时可定义类,创建表可以类里面进行(仅仅是例子,不代表唯一)
class Bar(object):
TABLE = 'bar'
TABLE_SCHEMA = '''
create table if not exist `bar`(
foo ...
)
'''
def __init__(self, sql_connection):
self.sql_connection = sql_connection
self.__create_table()
def __create_table(self):
cursor = self.sql_connection.cursor()
cursor.execute(self.TABLE_SCHEMA)
def get(self, foo):
cursor = self.sql_connection.cursor()
cursor.execute(...)
学习ing2017-06-12 09:25:48
需要在setting的INSTALLED_APPS配置你的model文件夹,比如你有一个文件叫models.py上级文件夹叫app,那你需要把app配置到INSTALLED_APPS里面才会创建
怪我咯2017-06-12 09:25:48
在 xxx/xxx/__init__.py 增加两行代码:
import pymysql
pymysql.install_as_MySQLdb()