Django學習(2)數據寶庫

  數據庫是一所大寶庫,藏着各類寶貝。一個沒有數據庫的網站,功能有限。在Django中,支持的數據庫有如下四種:html

  • SQLite3
  • MySQL
  • PostgreSQL
  • Oracle

其中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

Book文件夾的樹形結構

  在settings.py中添加app:web

添加app
  並修改數據庫鏈接方式爲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數據庫鏈接:數據庫

python3 manage.py makemigrations

python3 manage.py migrate
以上代表Django中的模型與MySQL數據庫鏈接完成。咱們能夠去MySQL中查看:django

MySQL查看books_mybook表格查看books_mybook表格其中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表格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

新增url
  啓動server服務:

python3 manage.py runserver 8000

  在網頁中輸入http://localhost:8000/book/,輸出的內容以下:

網頁展現這代表咱們增長記錄成功,而且也正確地在web頁面顯示了!!!
  最後,咱們再去MySQL中查看:

查看books_mybook表格
這樣咱們就完成了用views.py操做MySQL啦~~
  固然,更多的內容你們能夠參考Django的官方文檔哦~~
  本次分享到此結束,歡迎你們交流~~


 

參考文獻:

  1. Python 快速教程(Django02):莊園疑雲:http://python.jobbole.com/82786/
  2. Django 模型(數據庫):https://code.ziqiangxuetang.com/django/django-models.html
  3. Django官方文檔:https://docs.djangoproject.com/en/2.0/
  4. Django詳解之models操做:http://www.mamicode.com/info-detail-1504351.html
  5. Django_中文教程.pdf:http://download.csdn.net/download/huangzhichang13/8177581
相關文章
相關標籤/搜索