python框架Django連線mysql

2021-10-21 13:43:45 字數 3649 閱讀 3622

a.使用mysql資料庫首先需要安裝驅動程式

pip install pymysql

b.在django的工程同名子目錄的__init__.py檔案中新增如下語句

import pymysql

pymysql.install_as_mysqldb(

)

作用是讓django的orm能以mysqldb的方式來呼叫pymysql。

c.修改databases配置資訊

databases =

}

d.在models.py 檔案中定義模型類

屬性=models.欄位型別(選項)

型別 autofield :自動增長的integerfield,通常不用指定,不指定時django會自動建立屬性名為id的自動增長屬性

booleanfield :布林字段,值為true或false

nullbooleanfield :支援null、true、false三種值

charfield :字串,引數max_length表示最大字元個數

textfield :大文字字段,一般超過4000個字元時使用

integerfield :整數

decimalfield :十進位制浮點數, 引數max_digits表示總位數, 引數decimal_places表示小數字數

floatfield :浮點數

datefield :日期, 引數auto_now表示每次儲存物件時,自動設定該字段為當前時間,用於"最後一次修改"的時間戳,它總是使用當前日期,預設為false; 引數auto_now_add表示當物件第一次被建立時自動設定當前時間,用於建立的時間戳,它總是使用當前日期,預設為false; 引數auto_now_add和auto_now是相互排斥的,組合將會發生錯誤

timefield :時間,引數同datefield

datetimefield :日期時間,引數同datefield

filefield :上傳檔案字段

imagefield :繼承於filefield,對上傳的內容進行校驗,確保是有效的

選項 null :如果為true,表示允許為空,預設值是false

blank :如果為true,則該字段允許為空白,預設值是false

db_column :欄位的名稱,如果未指定,則使用屬性的名稱

db_index :若值為true, 則在表中會為此字段建立索引,預設值是false

default :預設

primary_key :若為true,則該字段會成為模型的主鍵字段,預設值是false,一般作為autofield的選項使用

unique :如果為true, 這個欄位在表中必須有唯一值,預設值是false

外來鍵:在設定外來鍵時,需要通過on_delete選項指明主表刪除資料時,對於外來鍵引用表資料如何處理,在django.db.models中包含了可選常量:

cascade:級聯,刪除主表資料時連通一起刪除外來鍵表中資料

protect:保護,通過丟擲protectederror異常,來阻止刪除主表中被外來鍵應用的資料

set_null:設定為null,僅在該字段null=true允許為null時可用

set_default:設定為預設值,僅在該字段設定了預設值時可用

set():設定為特定值或者呼叫特定方法

do_nothing:不做任何操作,如果資料庫前置指明級聯性,此選項會丟擲integrityerror異常

例:

from django.db import models

class

bookinfo

(models.model)

:# 建立字段,字段型別...

name = models.charfield(max_length=

20, verbose_name=

'名稱'

) pub_date = models.datefield(verbose_name=

'發布日期'

, null=

true

) readcount = models.integerfield(default=

0, verbose_name=

'閱讀量'

) commentcount = models.integerfield(default=

0, verbose_name=

) is_delete = models.booleanfield(default=

false

, verbose_name=

'邏輯刪除'

)class

meta

: db_table =

'bookinfo'

# 指明資料庫表名

verbose_name =

'圖書'

# 在admin站點中顯示的名稱

def__str__

(self)

:"""定義每個資料物件的顯示資訊"""

return self.name

class

peopleinfo

(models.model)

: gender_choices =((

0,'male'),

(1,'female'))

name = models.charfield(max_length=

20, verbose_name=

'名稱'

) gender = models.smallintegerfield(choices=gender_choices, default=

0, verbose_name=

'性別'

) description = models.charfield(max_length=

200, null=

true

, verbose_name=

'描述資訊'

) book = models.foreignkey(bookinfo, on_delete=models.cascade, verbose_name=

'圖書'

)# 外來鍵

is_delete = models.booleanfield(default=

false

, verbose_name=

'邏輯刪除'

)class

meta

: db_table =

'peopleinfo'

verbose_name =

'人物資訊'

def__str__

(self)

:return self.name

e.生成遷移檔案

python manage.py makemigrations

f.同步到資料庫中

python manage.py migrate

g.匯入兩個模型類,資料庫操作

例:增加

from book.models import bookinfo,peopleinfo

peopleinfo.objects.create(

name=

'itheima'

, book=book

)

python之路 搭建django框架

1 在yaolansvr 192.168.0.3上安裝python 3.4.3.tar.xz 使用xmanager5的xftp5將檔案上傳到ftp目錄 2 安裝原始碼的python 注意 1 ignoring ensurepip failure pip 6.0.8 requires ssl tls ...

python開發 Django框架使用

django框架是由python開發的免費的開源 框架,可用於快速搭建高效能,優雅的 首先需要的就是python環境可以選擇python2.7版本或者python3版本,目前我本機安裝的是python3,雖然網上評價不是很好,但是,我還是毅然決然的學則python3。然後就是django版本的選擇了...

Python開發 Django框架簡介

django 是乙個由 python 編寫的乙個開放源 的 web 應用框架。使用 django,只要很少的 python 的程式開發人員就可以輕鬆地完成乙個正式 所需要的大部分內容,並進一步開發出全功能的 web 服務 django 本身基於 mvc 模型,即 model 模型 view 檢視 c...