python - Bolehkah saya masih menggunakan modles.py untuk mengendalikan mysql selepas menggunakan pymysql dalam django?
扔个三星炸死你
扔个三星炸死你 2017-06-12 09:23:48
0
3
926

Persekitaran saya ialah: Python3.6 + django1.11.1 + mysql
Saya menggunakan pymysql sebelum ini, saya menggunakan sqlite3 Sekarang saya perlu membuat jadual dengan mentakrifkan kelas dalam models.py ? Mengapa saya menulis seperti ini dan kemudian melaksanakannya

python manage.py makemigrations
python manage.py migrate

Jadual yang sepadan tidak dijana dalam mysql?

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

membalas semua(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

Anda perlu mengkonfigurasi folder model anda dalam tetapan INSTALLED_APPS Contohnya, jika anda mempunyai fail bernama models.py dan folder peringkat atas dipanggil app, maka anda perlu mengkonfigurasi apl itu ke dalam INSTALLED_APPS sebelum ia akan dibuat

.
刘奇

Tambahkan dua baris kod pada xxx/xxx/__init__.py:

import pymysql
pymysql.install_as_MySQLdb()
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan