Heim  >  Fragen und Antworten  >  Hauptteil

python - Kann ich nach der Verwendung von pymysql in Django immer noch modles.py verwenden, um MySQL zu betreiben?

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?

扔个三星炸死你扔个三星炸死你2710 Tage vor870

Antworte allen(3)Ich werde antworten

  • 巴扎黑

    巴扎黑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(...)

    Antwort
    0
  • 学习ing

    学习ing2017-06-12 09:25:48

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

    Antwort
    0
  • 怪我咯

    怪我咯2017-06-12 09:25:48

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

    import pymysql
    pymysql.install_as_MySQLdb()

    Antwort
    0
  • StornierenAntwort