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

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

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

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

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

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

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

生成的表。

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

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

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

def student_list(request):student_queryset = models.Student.objects.all()return render(request,"student.html",{"student_queryset":student_queryset})
3.編寫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.啟動web
命令
python manage.py runserver 127.0.0.1:8000

打開游覽器,輸入http://127.0.0.1:8000/student_list
如圖所示!

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