Django中連接MySQL的方法-創新互聯

創新互聯www.cdcxhl.cn八線動態BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!

創新互聯建站2013年至今,是專業互聯網技術服務公司,擁有項目做網站、成都網站設計網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元鄂城做網站,已為上家服務,為鄂城各地企業和個人服務,聯系電話:18980820575

這篇文章主要介紹Django中連接MySQL的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

Django連接MySQL

1、創建數據庫 (注意設置 數據的字符編碼)

由于Django自帶的orm是data_first類型的ORM,使用前必須先創建數據庫。

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操作執行的原生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創建表

6、進行數據遷移

在winds cmd或者Linux shell的項目的manage.py目錄下執行

python manage.py makemigrations  #根據app下的migrations目錄中的記錄,檢測當前model層代碼是否發生變化?
python manage.py migrate         #把orm代碼轉換成sql語句去數據庫執行
python manage.py migrate --fake    #只記錄變化,不提交數據庫操作

Django中連接MySQL的方法

擴展:修改表結構之后常見報錯

這個報錯:因為表創建之時,新增字段既沒有設置默認值,也沒有設置新增字段可為空,去對應原有數據導致;

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語句去數據庫執行; 

python manage.py migrate --fake;假設 migrate 把所有SQL語句執行成功了;

我在使用Django構建表結構的時候很長一段時間都是沒有了解以上3條語句的執行意義,所有經常在修改表結構之后出現報錯;

出現報錯的原因:

無非就是   makemigrations翻譯的 SQL,跟數據庫里面真實的表結構 相互沖突,增加、刪除不了表、外鍵關系;

所以遇到報錯 你應該先把model中的代碼注釋掉-----》python manage.py migrate --fake------》python manage.py makemigrations

去數據庫把已經存在的表、外鍵刪掉(確保數據庫目前的狀態,可以讓makemigrations翻譯出來的SQL語句在數據庫里執行成功;然后migrate)--------》 python manage.py migrate;

7.設置pycharm可視化MySQL

Django中連接MySQL的方法

Django中連接MySQL的方法

Django中連接MySQL的方法

以上是Django中連接MySQL的方法的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創新互聯-成都網站建設公司行業資訊頻道!

網站標題:Django中連接MySQL的方法-創新互聯
分享鏈接:http://m.kartarina.com/article38/cdcpsp.html

成都網站建設公司_創新互聯,為您提供Google關鍵詞優化定制開發網站設計公司外貿建站動態網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站建設網站維護公司
主站蜘蛛池模板: 亚洲国产成人精品无码区在线观看| 精品多人p群无码| 麻豆aⅴ精品无码一区二区| 久久精品无码精品免费专区| 无码狠狠躁久久久久久久| 无码AⅤ精品一区二区三区| 亚洲爆乳无码一区二区三区| 精品无码国产AV一区二区三区| 亚洲热妇无码AV在线播放| 无码被窝影院午夜看片爽爽jk| 一本大道东京热无码一区| 中文字幕精品三区无码亚洲| 国产AⅤ无码专区亚洲AV| 亚洲AV无码一区二区大桥未久| 亚洲中文字幕无码爆乳AV| 无码免费又爽又高潮喷水的视频 | 亚洲国产精品无码av| 国产精品无码一区二区在线| 少妇无码AV无码专区在线观看| 亚洲无码高清在线观看| 无码一区二区三区亚洲人妻| 亚洲色无码国产精品网站可下载| 亚洲国产成人精品无码区在线观看| 狠狠躁狠狠躁东京热无码专区| 久久久久久久久免费看无码| 伊人天堂av无码av日韩av| 亚洲Av无码一区二区二三区| 色窝窝无码一区二区三区色欲| 亚洲中文字幕无码日韩| 亚洲精品高清无码视频| 亚洲桃色AV无码| 亚洲中文字幕无码久久2017 | 69天堂人成无码麻豆免费视频| 免费无码又爽又刺激网站直播 | 亚洲精品无码少妇30P| 亚洲国产成人无码av在线播放| 免费人妻无码不卡中文字幕系| 久久精品aⅴ无码中文字字幕| 亚洲AV日韩AV永久无码绿巨人| 国产激情无码一区二区| 日韩乱码人妻无码中文字幕|