Django模型資料庫配置

2021-10-04 00:09:24 字數 3800 閱讀 9062

在虛擬開發環境中,安裝mysql的資料庫驅動mysqlclient

pip install mysqlclient
在項⽬的 settings.py ⽂件中找到databases 配置項,將其資訊修改為:

databases =

}

#屬性定義語法為:

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

屬性命名規則:

autofield:⼀個根據實際id⾃動增⻓的 integerfield(通常不指定⾃動⽣成)charfield: 字串,預設的表單樣式是textinputmax_length=字元長度

textfield: ⼤⽂本欄位,⼀般超過4000使⽤,預設的表單控制項是textarea

integerfield:整數decimalfield 使⽤python的decimal例項表示的⼗進製浮點數 ,max_digits總位數 ;ecimal_places⼩數字數 ;

floatfield:⽤python的flfloat例項來表示的浮點數

booleanfield: true/false 字段,此字段的預設 表單控制是checkboxinput

nullbooleanfield:⽀持null、true、false三種值

datefield: 使⽤python的datetime.date例項表示的⽇期,該欄位預設對 應的表單控制項是⼀個textinput , auto_now和auto_now_add、default這三個引數 不能同時共存

timefield: 使⽤python的datetime.time實 例表示的時間 引數同datefielddatetimefield: 使⽤python的 datetime.datetime例項表示的 ⽇期和時間 引數同datefield

imagefield: 繼承了filefield的所有屬性和⽅ 法,但對上傳的物件進⾏校 驗,確保它是個有效的image

我們可以在應⽤的models.py中定義模型:

from django.db import models

class 模型名(models.model)

: 屬性名 = models.欄位名(字段選項/引數)..

...class

meta

:#可選,任何⾮欄位的設定可以寫到meta中

db_table =

'user'

#指定表名為uesr

id

= models.autofield(primary_key=

true

)

如:

from django.db import models

from django.utils import timezone

#⽤戶類

class

user

(models.model)

: uid = models.autofield(primary_key=

true

)#⾃增主鍵

uname = models.charfield(max_length=60)

password = models.charfield(max_length=32)

user_type =((

1,'超級管理員'),

(2,'普通⽤戶'))

type

= models.integerfield(default=

2,choices=user_type)

regtime = models.datetimefield(default=timezone.now)

#預設值是當

前時間 ip = models.integerfield(null=

true

) login_type =((

1,'允許登入'),

(2,'禁⽌登入'))

#⽤戶⾃定義型別對應mysql的enum型別

allowed = models.integerfield(default=

1,choices=login_type)

email = models.charfield(max_length=

100,null=

true

) memo = models.charfield(max_length=

1000

,null=

true

)class

meta

: db_table =

'user'

#表名

python manage.py makemigrations
python manage.py migrate
然後在應⽤的migrations⽬錄中應該⽣成了遷移⽂件

│ ├── admin.py

│ ├── __init__.py

│ ├── migrations

│ │ ├── 0001_initial.py

│ │ ├── __init__.py

⽣成的表結構如下:

create table `user` (

`uid` int(11

) not null auto_increment,

`uname` varchar(

60) not null,

`password` char(

32) not null,

`type` enum(

'超級管理員'

,'普通⽤戶'

) default '普通⽤戶'

, `regtime` datetime default null,

`ip` int(11

) default null,

`allowed` enum(

'允許登入'

,'禁⽌登入'

) default '允許登入'

, `email` varchar(

100) default null,

`memo` varchar(

1000

) default null,

primary key (`uid`)

)

注意:任何對欄位或表的修改都需要重新遷移

可以根據資料庫中表⾃動建立模型

我們可以再互動式python shel環境中,使⽤django提供的免費api。要調⽤python shell,請使用以下命令:

$ python manage.py shell

python 3.6

.4(default, sep 13

2018,02

:27:17

)[gcc 5.4

.020160609

] on linux

type "help",,

"credits"

or"license"

for more

information.

(interactiveconsole)

>>

>

Django 模型(資料庫)

1.新建專案和應用 django admin.py startproject learn models 新建乙個專案 cd learn models 進入到該項目的資料夾 2.新增應用 django.contrib.admin django.contrib.auth django.contrib.c...

Django 配置資料庫

django提到配置那大多數都是在settings.py配置檔案 在配置檔案裡的 databases 內進行設定 資料庫配置 databases 然後在同級目錄內找到 init py檔案 導包import pymysql 進行初始化 pymysql.install as mysqldb 設定完成後在...

django配置mysql資料庫

最近在學習django,學到第五章模型時,需要連線資料庫,然後,在這裡分享一下方法。起初是不知道怎樣配置mysql資料庫,但是還好,django的官網上面有相關的配置方法,下面就直接給分享一下。這是settings檔案裡面的基礎配置,使用的是sqlite,那我們需要連線其他資料庫呢?plain vi...