python - Kann ich nach der Verwendung von pymysql in Django immer noch modles.py verwenden, um MySQL zu betreiben?
扔个三星炸死你
扔个三星炸死你 2017-06-12 09:23:48
0
3
840

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?

扔个三星炸死你
扔个三星炸死你

Antworte allen(3)
巴扎黑
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(...)
学习ing

需要在setting的INSTALLED_APPS配置你的model文件夹,比如你有一个文件叫models.py上级文件夹叫app,那你需要把app配置到INSTALLED_APPS里面才会创建

刘奇

在 xxx/xxx/__init__.py 增加两行代码:

import pymysql
pymysql.install_as_MySQLdb()
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!