python - django使用pymysql之后還能使用modles.py來操作mysql嗎
問題描述
我的環境是:Python3.6 + django1.11.1 + mysql我使用的是pymysql,之前學的時候是用的sqlite3,現在改用pymysql請問在models.py中還是用定義類的方式創建表嗎?為什么我這樣寫然后執行
python manage.py makemigrationspython manage.py migrate
并沒有在mysql中生成相應的表呢?
問題解答
回答1: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(...)回答2:
需要在setting的INSTALLED_APPS配置你的model文件夾,比如你有一個文件叫models.py上級文件夾叫app,那你需要把app配置到INSTALLED_APPS里面才會創建
回答3:在 xxx/xxx/__init__.py 增加兩行代碼:
import pymysqlpymysql.install_as_MySQLdb()
相關文章:
1. macos - mac下docker如何設置代理2. angular.js - ng-grid 和tabset一起用時,grid width默認特別小3. apache - 本地搭建wordpress權限問題4. 熱切期待朱老師的回復,網頁視頻在線播放器插件配置錯誤5. docker 下面創建的IMAGE 他們的 ID 一樣?這個是怎么回事????6. java - Spring Mvc全局異常處理器@ControllerAdvice不起作用?7. Whitelabel錯誤頁面發生意外錯誤(類型=未找到,狀態= 404)/WEB-INF/views/home.jsp8. javascript - web網頁版app返回上一頁按鈕在ios設備失效怎么辦?安卓上可以,代碼如下,請大神幫助,萬分感謝。9. Android下,rxJava+retrofit 并發上傳文件和串行上傳文件的效率為什么差不多?10. css3 - transition屬性當鼠標一開的時候設置的時間不起作用
