Django框架學習筆記 九

2021-09-30 19:57:40 字數 2976 閱讀 4773

django的orm主要有兩個功能:操作表、運算元據行

操作表:建立表、修改表(表的結構和資料型別)、刪除表

運算元據行:增刪改查

建立資料庫

修改settings.py的資料庫配置,填寫資料庫的相關資訊

引入pymysql來替換mysql_db

django的orm不能直接連線資料庫,需要借助pymysql等第三方的工具來實現資料庫連線。在django中,預設連線的資料庫是sqlite(檔案型),當我們想使用mysql資料庫時,需要對settings.py的資料庫配置進行修改:

修改為:

databases =

}

填寫好資料庫的相關資訊之後,控制台會報錯,我們還需要在專案同名目錄的__init__.py(與settings.py同級)進行配置:

這樣pymysql就會把內部的mysql_db替換了

django用orm建立資料表是通過類來實現的,通常寫在應用的models.py檔案裡

這句可以省略,django會自動建立乙個自增的id列,並且是主鍵

nid = models.bigautofield(primary_key=

true

)

當我們簡單建立乙個表時,如果想要生成,則需要進行註冊,同樣是在settings.py檔案中進行註冊:

完成註冊之後還需要執行兩個命令【牢記】才真正才成了表的建立:

執行成功之後,我們就可以在資料庫中看到我們建立的表:

一對多:通常把外來鍵寫在的一方

執行命令之後,重新整理資料庫表,得到的userinfo如圖所示:

當我們需要修改某個字段或者給表增加列時,要注意控制台的提示資訊,並且需要執行上面提到的兩個命令,它會生成記錄,每次對資料表進行操作時都會對比上一次的記錄來生成新的sql執行語句,輕易不要刪除

:# 增刪改查

# 增models.usergroup.objects.create(title=

'銷售部'

) models.usergroup.objects.create(title=

'人事部'

) models.userinfo.objects.create(username=

'root'

, password=

'123456'

, age=

18, ug_id=1)

# 查 group_list = models.usergroup.objects.

all(

)# print(group_list) # queryset型別,可看做列表

# for group in group_list:

# print(group.id, group.title) # 獲取每個group的id和title

# 條件查詢

models.usergroup.objects.

filter(id

=1)# 相當於where id=1

models.usergroup.objects.

filter

(id__gt=1)

# 相當於where id>1

models.usergroup.objects.

filter

(id__lt=1)

# 相當於where id<1

# 刪 models.usergroup.objects.

filter(id

=2).delete(

)# 改

models.usergroup.objects.

filter(id

=1).update(title=

'公關部'

)return render(request,

'index.html',)

待續…

九 django學習筆記四

這篇筆記主要是關於django模組的操作 1.1配置 在工程中建立模板目錄templates,在settings.py配置檔案中修改templates配置項的dirs值 templates 1.2定義模組 在templates目錄中新建乙個模板檔案,如index.html en utf 8 titl...

Django框架學習筆記 七

在開發乙個web專案時,會出現多個頁面有公共頭部 導航欄等情況,在每個頁面中重複寫會導致後期修改非常麻煩,而且還可能會出現一些錯誤,在django框架中,提供了模板引擎。我們會定義乙個母版,用它來存放所有頁面的公用部分,如 母版layout.html 通常會在母版裡面定義三個區塊block,分別給它...

Django框架學習

執行開發web伺服器命令 python manage.py runserver 可加ip跟埠127.0.0.1 8000 模板設定 templates 鏈結mysql設定 databases import pymysql pymysql.install as mysqldb urlpatterns ...