手把手教你使用Django如何連接Mysql
回復(fù)“書(shū)籍”即可獲贈(zèng)Python從入門(mén)到進(jìn)階共10本電子書(shū)
前言
這次咱們來(lái)簡(jiǎn)述一下,Django如何連接Mysql。
默認(rèn)情況下,Django連接的是自己帶的sqlite數(shù)據(jù)庫(kù)。

這種數(shù)據(jù)庫(kù)好處是方便,不需要遠(yuǎn)程連接,打包項(xiàng)目挪到其他電腦上安裝一下依賴一會(huì)就跑起來(lái)了。
但是缺點(diǎn)就是,可能會(huì)出現(xiàn)各種莫名其面的問(wèn)題,所以,盡可能在開(kāi)始的時(shí)候,就配置上連接Mysql。
連接Mysql
Django連接Mysql分三步
Mysql提前創(chuàng)建好數(shù)據(jù)庫(kù)。
修改Django的
settings.py文件。修改項(xiàng)目文件夾下的
__init.py文件。
1.Mysql提前創(chuàng)建好數(shù)據(jù)庫(kù)
首先,我使用的是本機(jī)的Mysq,并且我在Mysq上創(chuàng)建了一個(gè)school數(shù)據(jù)庫(kù)。

2.修改Django的settings.py文件
創(chuàng)建一個(gè)Django項(xiàng)目,在項(xiàng)目文件夾下的settings.py下,找到原來(lái)的sqlite配置文件。
注銷或刪除sqlite配置,添加以下配置。

復(fù)制以下代碼
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql', # 默認(rèn)'NAME': 'school', # 連接的數(shù)據(jù)庫(kù)'HOST': '127.0.0.1', # mysql的ip地址'PORT': 3306, # mysql的端口'USER': 'root', # mysql的用戶名'PASSWORD': 'rootroot' # mysql的密碼}}
3.修改項(xiàng)目文件夾下的__init.py文件
由于配置了Mysql,所以要替換默認(rèn)的數(shù)據(jù)庫(kù)引擎,在項(xiàng)目文件夾下的__init__.py,添加以下內(nèi)容。

復(fù)制以下代碼
import pymysqlpymysql.install_as_MySQLdb()
如果沒(méi)有安裝pymysql,記得安裝一下,命令:pip install pymysql。
遷移數(shù)據(jù)庫(kù)
如果上述都沒(méi)問(wèn)題了,那我們來(lái)寫(xiě)個(gè)小Demo來(lái)跑一下試試。
遷移數(shù)據(jù)庫(kù)流程。
創(chuàng)建app(Django必須依賴app才能創(chuàng)建表)。
settings.py中添加創(chuàng)建的app。遷移。
1.創(chuàng)建app(Django必須依賴app才能創(chuàng)建表)
首先呢,我們需要在Django中,創(chuàng)建一個(gè)app。命令如下:
python manage.py startapp web

2. settings.py中添加創(chuàng)建的app
創(chuàng)建完之后,我們需要在settings.py中配置一下剛剛創(chuàng)建的app。

3.遷移
然后執(zhí)行命令,遷移數(shù)據(jù)庫(kù)到Mysql。
python manage.py makemigrationspython manage.py migrate

生成的表。

會(huì)生成很多其他表,不用管他,只要咱們要的。
我這里直接手動(dòng)向剛剛創(chuàng)建的表里面添加一些數(shù)據(jù)。

展示內(nèi)容
展示內(nèi)容大概分為以下幾個(gè)部分。
編寫(xiě)url。
編寫(xiě)視圖(views)。
編寫(xiě)html(templates)。
啟動(dòng)web。
1.編寫(xiě)url
urls.py

urlpatterns = [path('admin/', admin.site.urls),path('student_list', views.student_list),]
2.編寫(xiě)視圖(views)
web/views.py

def student_list(request):student_queryset = models.Student.objects.all()return render(request,"student.html",{"student_queryset":student_queryset})
3.編寫(xiě)html(templates)
templates/student.html
<html lang="en"><head><meta charset="UTF-8"><title>Titletitle>head><body><table border="1"><thead><tr><td>idtd><td>姓名td><td>年齡td><td>性別td><td>年紀(jì)td>tr>thead><tbody>{% for student in student_queryset %}<tr><td>{{ student.id }}td><td>{{ student.name }}td><td>{{ student.age }}td><td>{{ student.gender }}td><td>{{ student.grade }}td>tr>{% endfor %}tbody>table>body>html>
4.啟動(dòng)web
命令
python manage.py runserver 127.0.0.1:8000

打開(kāi)游覽器,輸入http://127.0.0.1:8000/student_list
如圖所示!

總結(jié)
本次主要講述的是Django如何連接Mysql。并且順帶的做了一個(gè)測(cè)試小Demo,展示一個(gè)web是如何運(yùn)行起來(lái)的。如果基礎(chǔ)不好,我相信后面這些還是很有用的。
pymysql的版本不建議安裝太高,我的是pymysql版本是0.9.2,Django版本是2.1.5。
如果你覺(jué)得文章還可以,記得點(diǎn)贊留言支持我們哈。感謝你的閱讀,有問(wèn)題請(qǐng)記得在下方留言噢~
想學(xué)習(xí)更多關(guān)于Python的知識(shí),可以參考學(xué)習(xí)網(wǎng)址:http://pdcfighting.com/,點(diǎn)擊閱讀原文,可以直達(dá)噢~
------------------- End -------------------
往期精彩文章推薦:
歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入Python學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群】
萬(wàn)水千山總是情,點(diǎn)個(gè)【在看】行不行
/今日留言主題/
隨便說(shuō)一兩句吧~~
