手把手教你使用Django如何連接MySQL
前言
這次咱們來簡述一下,Django如何連接Mysql。
默認情況下,Django連接的是自己帶的sqlite數(shù)據庫。
這種數(shù)據庫好處是方便,不需要遠程連接,打包項目挪到其他電腦上安裝一下依賴一會就跑起來了。
但是缺點就是,可能會出現(xiàn)各種莫名其面的問題,所以,盡可能在開始的時候,就配置上連接Mysql。
連接Mysql
Django連接Mysql分三步
- Mysql提前創(chuàng)建好數(shù)據庫。
- 修改Django的settings.py文件。
- 修改項目文件夾下的__init.py文件。
1.Mysql提前創(chuàng)建好數(shù)據庫
首先,我使用的是本機的Mysq,并且我在Mysq上創(chuàng)建了一個school數(shù)據庫。
2.修改Django的settings.py文件
創(chuàng)建一個Django項目,在項目文件夾下的settings.py下,找到原來的sqlite配置文件。
注銷或刪除sqlite配置,添加以下配置。
復制以下代碼
- DATABASES = {
- 'default': {
- 'ENGINE': 'django.db.backends.mysql', # 默認
- 'NAME': 'school', # 連接的數(shù)據庫
- 'HOST': '127.0.0.1', # mysql的ip地址
- 'PORT': 3306, # mysql的端口
- 'USER': 'root', # mysql的用戶名
- 'PASSWORD': 'rootroot' # mysql的密碼
- }
- }
3.修改項目文件夾下的__init.py文件
由于配置了Mysql,所以要替換默認的數(shù)據庫引擎,在項目文件夾下的__init__.py,添加以下內容。
復制以下代碼
- import pymysql
- pymysql.install_as_MySQLdb()
如果沒有安裝pymysql,記得安裝一下,命令:pip install pymysql。
遷移數(shù)據庫
如果上述都沒問題了,那我們來寫個小Demo來跑一下試試。
遷移數(shù)據庫流程。
- 創(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ù)據庫到Mysql。
- python manage.py makemigrations
- python manage.py migrate
生成的表。
會生成很多其他表,不用管他,只要咱們要的。
我這里直接手動向剛剛創(chuàng)建的表里面添加一些數(shù)據。
展示內容
展示內容大概分為以下幾個部分。
- 編寫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
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Title</title>
- </head>
- <body>
- <table border="1">
- <thead>
- <tr>
- <td>id</td>
- <td>姓名</td>
- <td>年齡</td>
- <td>性別</td>
- <td>年紀</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>
id | 姓名 | 年齡 | 性別 | 年紀 |
{{ student.id }} | {{ student.name }} | {{ student.age }} | {{ student.gender }} | {{ student.grade }} |
4.啟動web
命令
- python manage.py runserver 127.0.0.1:8000
打開游覽器,輸入http://127.0.0.1:8000/student_list
如圖所示!
總結
本次主要講述的是Django如何連接Mysql。并且順帶的做了一個測試小Demo,展示一個web是如何運行起來的。如果基礎不好,我相信后面這些還是很有用的。
pymysql的版本不建議安裝太高,我的是pymysql版本是0.9.2,Django版本是2.1.5。
如果你覺得文章還可以,記得點贊留言支持我們哈。感謝你的閱讀,有問題請記得在下方留言噢~
本文轉載自微信公眾號「Python爬蟲與數(shù)據挖掘」,可以通過以下二維碼關注。轉載本文請聯(lián)系Python爬蟲與數(shù)據挖掘公眾號。