柚子快報(bào)邀請碼778899分享:Django和Mysql數(shù)據(jù)庫
柚子快報(bào)邀請碼778899分享:Django和Mysql數(shù)據(jù)庫
Django學(xué)習(xí)筆記
Django和Mysql數(shù)據(jù)庫
Django開發(fā)操作數(shù)據(jù)庫更簡單,內(nèi)部提供了ORM框架。
1)安裝mysqlclient
pip3 install mysqlclient
2)ORM
ORM可以幫助我們做兩件事:
1.創(chuàng)建、修改、修改數(shù)據(jù)庫中的表(不用寫sql語句)[不能創(chuàng)建數(shù)據(jù)庫]
2.操作表中的數(shù)據(jù)(不用寫sql語句)
3)創(chuàng)建數(shù)據(jù)庫
create database database_name;
4)配置Django連接數(shù)據(jù)庫
修改settings.py文件
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', #數(shù)據(jù)庫類型
'NAME': 'helloWorld', #數(shù)據(jù)庫名稱
'USER': 'root', #數(shù)據(jù)庫用戶名
'PASSWORD': 'xxxx', #數(shù)據(jù)庫密碼
'HOST': 'xxx.xxx.xxx.xxx', #數(shù)據(jù)庫主機(jī)地址
'PORT': '33060', #數(shù)據(jù)庫端口號
}
}
5)在modeles.py中創(chuàng)建一個(gè)用于生成表的類
from django.db import models
# Create your models here.
class userInfo(models.Model): #這個(gè)類用于生成表
name = models.CharField(max_length=32) #定義name字段
password = models.CharField(max_length=16) #定義password字段
age = models.IntegerField() #定義age字段
"""
Django執(zhí)行上面這個(gè)類的時(shí)候,相當(dāng)于執(zhí)行了建表操作(新建的表名為“app名_類名”),相當(dāng)于以下代碼:
create table app1_userinfo(
id bigint auto_increment primary key,
name varchar(32),
password varchar(16),
age int
)
"""
6)創(chuàng)建表,將數(shù)據(jù)自帶表遷移到數(shù)據(jù)庫中
python manage.py makemigrations #生成遷移文件
python manage.py migrate #進(jìn)行遷移
遷移完后,在數(shù)據(jù)庫中應(yīng)該可以看到一些django的表
注意:
如果不執(zhí)行遷移,那么在使用的時(shí)候,有些數(shù)據(jù)需要存到自帶的表中,那么就會報(bào)錯(cuò)。
這樣就可以看到數(shù)據(jù)庫中已創(chuàng)建好了一張表
如果要刪除表,只需要把models.py中的類刪除,重新執(zhí)行表遷移就可以。
如果要修改表,只需要修改models.py中的類,重新執(zhí)行表遷移就可以。
注意:
在新建 的表中會自動增加一個(gè)ID字段,并且為auto_increment 和primary key
如果在表中增加了新字段,進(jìn)行遷移的時(shí)候會有兩個(gè)選項(xiàng):
選項(xiàng)1 :手動指定一個(gè)默認(rèn)值;
選項(xiàng)2:退出,可以在類中將將新增字段添加一個(gè)默認(rèn)值;
如:
six=models.CharField(max_length=4,defalut=l)
或者設(shè)置新增字段允許為空
six=models.CharField(max_length=4,null=True,blank=True)
1.13操作數(shù)據(jù)
1)新增記錄
from app1 import models #引入models模塊
models.
#相當(dāng)于以下sql語句
#insert into
2)刪除記錄
models.
models.
3)查詢數(shù)據(jù)
data_list1 = models.
for row in data_list1: #遍歷所有數(shù)據(jù)
print(row.
data_list2 = models.
4)修改數(shù)據(jù)
#修改所有記錄的指定字段值
models.
#修改符合條件的記錄的指定字段值
models.
柚子快報(bào)邀請碼778899分享:Django和Mysql數(shù)據(jù)庫
好文鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。