創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!
創(chuàng)新互聯(lián)建站2013年至今,是專業(yè)互聯(lián)網技術服務公司,擁有項目做網站、成都網站設計網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元鄂城做網站,已為上家服務,為鄂城各地企業(yè)和個人服務,聯(lián)系電話:18980820575這篇文章主要介紹Django中連接MySQL的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
Django連接MySQL
1、創(chuàng)建數據庫 (注意設置 數據的字符編碼)
由于Django自帶的orm是data_first類型的ORM,使用前必須先創(chuàng)建數據庫。
create database day70 default character set utf8 collate utf8_general_ci;
2、修改project中的settings.py文件中設置 連接 MySQL數據庫(Django默認使用的是sqllite數據庫)
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME':'day70', 'USER': 'eric', 'PASSWORD': '123123', 'HOST': '192.168.182.128', 'PORT': '3306', } }
擴展:查看orm操作執(zhí)行的原生SQL語句
在project中的settings.py文件增加。
LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console':{ 'level':'DEBUG', 'class':'logging.StreamHandler', }, }, 'loggers': { 'django.db.backends': { 'handlers': ['console'], 'propagate': True, 'level':'DEBUG', }, } }
3、修改project 中的__init__py 文件設置 Django默認連接MySQL的方式
import pymysql pymysql.install_as_MySQLdb()
4、setings文件注冊APP
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'app01.apps.App01Config', ]
5、models.py創(chuàng)建表
6、進行數據遷移
在winds cmd或者Linux shell的項目的manage.py目錄下執(zhí)行
python manage.py makemigrations #根據app下的migrations目錄中的記錄,檢測當前model層代碼是否發(fā)生變化? python manage.py migrate #把orm代碼轉換成sql語句去數據庫執(zhí)行 python manage.py migrate --fake #只記錄變化,不提交數據庫操作
擴展:修改表結構之后常見報錯
這個報錯:因為表創(chuàng)建之時,新增字段既沒有設置默認值,也沒有設置新增字段可為空,去對應原有數據導致;
2種解決方法:
1.設置新增字段可以為空
startdate = models.CharField(max_length=255, verbose_name="任務開始時間",null=True, blank=True) Handledate = models.CharField(max_length=255, verbose_name="開始處理時間",null=True, blank=True) Handledone = models.CharField(max_length=255, verbose_name="處理完畢時間", null=True, blank=True) enddate = models.CharField(max_length=255, verbose_name="任務結束時間",null=True, blank=True) WorkTime_cost=models.CharField(max_length=255,verbose_name='工作耗時',null=True, blank=True)
2.設置新增字段默認值為當前時間
Please enter the default value now, as valid Python The datetime and django.utils.timezone modules are available, so you can do e.g. timezone.now Type 'exit' to exit this prompt >>> timezone.now()
更多問題
python manage.py makemigrations :把你寫在models中的代碼翻譯成增、刪、改的 SQL 語句;
python manage.py migrate;講python manage.py makemigrations翻譯的SQL語句去數據庫執(zhí)行;
python manage.py migrate --fake;假設 migrate 把所有SQL語句執(zhí)行成功了;
我在使用Django構建表結構的時候很長一段時間都是沒有了解以上3條語句的執(zhí)行意義,所有經常在修改表結構之后出現報錯;
出現報錯的原因:
無非就是 makemigrations翻譯的 SQL,跟數據庫里面真實的表結構 相互沖突,增加、刪除不了表、外鍵關系;
所以遇到報錯 你應該先把model中的代碼注釋掉-----》python manage.py migrate --fake------》python manage.py makemigrations
去數據庫把已經存在的表、外鍵刪掉(確保數據庫目前的狀態(tài),可以讓makemigrations翻譯出來的SQL語句在數據庫里執(zhí)行成功;然后migrate)--------》 python manage.py migrate;
7.設置pycharm可視化MySQL
以上是Django中連接MySQL的方法的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)-成都網站建設公司行業(yè)資訊頻道!
網站標題:Django中連接MySQL的方法-創(chuàng)新互聯(lián)
分享鏈接:http://muchs.cn/article38/cdcpsp.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供Google、關鍵詞優(yōu)化、定制開發(fā)、網站設計公司、外貿建站、動態(tài)網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)