數據庫是一所大寶庫,藏着各類寶貝。一個沒有數據庫的網站,功能有限。在Django中,支持的數據庫有如下四種:html
其中SQLite3爲Django自帶數據庫,無需安裝。Django要求MySQL版本4.0或更高。
本文將介紹如何在Django中鏈接並操做MySQL.請確保你的系統裏已安裝MySQL以及Python模塊pymysql.
首先新建項目Book,並在Book項目中新建應用books:python
django-admin.py startproject Book cd ./Book django-admin.py startapp books
其中Book文件夾的樹形結構以下圖:mysql
在settings.py中添加app:web
並修改數據庫鏈接方式爲MySQL:sql
其中,ENGINE鏈接方式爲MySQL。NAME爲數據庫名稱,咱們這裏選擇Book,前提是你的MySQL中已經建立好Book數據庫。USER和PASSWORD爲MySQL的用戶名和密碼。HOST和PORT分別選擇本地鏈接和3306.
這樣咱們已經鏈接好MySQL的Book數據庫,接下來須要建立表格。這能夠在books的models.py中定義,代碼以下:shell
1 from django.db import models 2 3 class MYBOOK(models.Model): 4 name = models.CharField(max_length=200) 5 price = models.FloatField() 6 7 def __str__(self): 8 return self.name+':'+str(self.price)
在上述模型中,咱們定義了name和price字段,並用str()函數返回name:price的形式。接着咱們須要將Django中的模型與MySQL數據庫鏈接:數據庫
以上代表Django中的模型與MySQL數據庫鏈接完成。咱們能夠去MySQL中查看:django
其中books_mybook是模型生成的表格,是張空表格。那麼該如何操做該表格呢?Django已經幫咱們想好辦法了,一種是利用shell命令行,一種是在books文件夾的views.py中操做。
首先咱們先嚐試用shell命令行模式,只需輸入如下命令行:app
python3 manage.py shell
進入IPython後進行如下操做:函數
In [1]: from books.models import MYBOOK In [2]: MYBOOK.objects.create(name="Dive into Python", price=50.5) Out[2]: <MYBOOK: Dive into Python:50.5> In [3]: MYBOOK.objects.create(name="Dive into Scala", price=48.6) Out[3]: <MYBOOK: Dive into Scala:48.6> In [4]: MYBOOK.objects.create(name="Dive into Java", price=67.4) Out[4]: <MYBOOK: Dive into Java:67.4> In [5]: MYBOOK.objects.all() Out[5]: [<MYBOOK: Dive into Python:50.5>, <MYBOOK: Dive into Scala:48.6>, <MYBOOK: Dive into Java:67.4>]
Django用類的實例表示表格的記錄,因此須要導入MYBOOK類。MYBOOK.objects.create(name="Dive into Python", price=50.5)表示增長一條記錄,MYBOOK.objects.all()則返回全部記錄。咱們能夠去看看這時MySQL中的狀況:
books_mybook確實已增長了三條記錄!!!關於更多的操做數據庫的命令能夠參考:https://docs.djangoproject.com/en/2.0/topics/db/queries/。
第二種方法是在books文件夾的views.py中操做,代碼以下:
from django.shortcuts import render from books.models import MYBOOK from django.http import HttpResponse def insert_and_show(request): #insert records into table using three methods MYBOOK.objects.create(name="Learning Scrapy",price=30) p = {'name':"Linux Shell", 'price':25} MYBOOK.objects.create(**p) q = MYBOOK(name='Learning Pyspark', price=20) q.save() #show the records in webpage book_list = MYBOOK.objects.all() string = "TABLE MYBOOK:<br/>" for _ in book_list: string += str(_)+'<br/><br/>' return HttpResponse(string)
該代碼前半部分用三種方式插入數據,後半部分則是爲了在網頁中顯示。
在urls.py中增長新的url
啓動server服務:
python3 manage.py runserver 8000
在網頁中輸入http://localhost:8000/book/,輸出的內容以下:
這代表咱們增長記錄成功,而且也正確地在web頁面顯示了!!!
最後,咱們再去MySQL中查看:
這樣咱們就完成了用views.py操做MySQL啦~~
固然,更多的內容你們能夠參考Django的官方文檔哦~~
本次分享到此結束,歡迎你們交流~~
參考文獻: