Django框架之ORM(day72)
一 ORM即Object Relational Mapping,全稱對象關係映射。
1 不用寫sql,不會sql的人也能夠寫程序
2 開發效率高
3 可能sql的效率低
二 ORM鏈接到MySQL的操做,若是鏈接mysql:
1 在setting裏配置:
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '127.0.0.1',
'PORT': 3306,
'USER': 'root',
'PASSWORD': 'admin',
'NAME': 'lqz',} #數據庫名
2.在app下的__init__.py裏寫:
import pymysql
pymysql.install_as_MySQLdb()
三 django-orm:
1 不能建立數據庫(須要手動建立數據庫) (其中sqlite數據庫在運行項目是自動建立數據庫)
2 能夠建立數據表
3 能夠建立字段
四 數據庫遷移 (每次更改數據庫字段時都必須進行的操做,在命令行中進行2步)
第一種方法
1 python3 manage.py makemigrations ----記錄一下數據庫的變化
2 python3 manage.py migrate ----將變化同步到數據庫中
第二種方法
1 tools--->Run manage.py Task
2 只須要敲命令:makemigrations(記錄數據庫的修改記錄)e
3 只須要敲命令:migrate(把數據同步到數據庫)
五 字段的增刪改查(***每次更改數據庫字段時都必須進行的操做,在命令行中進行2步****)
1 直接在app下models.py下查看類(庫便可)
class User(models.Model):
id=models.AutoField(primary_key=True) ##id設爲主鍵
name=models.CharField(max_length=32)
2 直接在類下增長字段:(注意數據庫遷移命令2條)
注意:後來增長的字段,須要有默認值
phone=models.CharField(max_length=64,default='120') ##default='120'添加的默認值
3 刪除字段
註釋掉字段,執行數據庫遷移命令
4 修改數據
直接修改字段,執行數據庫遷移命令
六 數據庫數據的增刪改查(以user爲例) ***重點****:
1 單表查詢全部用戶:ret=models.User.objects.all()
獲得的是 queryset對象(當成列表),列表裏面,一個一個的對象[user1,user2]
2 返回頁面操做:render(request, 'userlist.html', {'user_list': ret})
3 在userlist.html模板裏: {% for user in user_list %}
#要循環的內容
{{user.name}}
{% endfor%} ##在返回瀏覽器頁面時已經完成全部的替換工做(後臺執行)
4 get請求攜帶參數:
http://127.0.0.1:8000/deleteuser/?id=1
後臺取值:request.GET.get('id') ##推薦使用,當沒有數據是不會報錯
request.GET['id']
5 orm刪除記錄 models.User.objects.filter(id=id).delete()
返回值:影響的行數(刪掉數據的行數)
6 前臺post提交的數據取值:name=request.POST.get('name')
7 orm保存(添加)的兩種方式:
1 user=models.User.objects.create(name=name,password=pwd,address=addr)
2 user=models.User(name=name,password=pwd,address=addr) ##先建立user對象在保存的數據庫
user.save()
8 orm查詢單條數據:user=models.User.objects.filter(id=id).first()
9 orm的修改 models.User.objects.filter(id=id).update(name=name,password=pwd,address=addr)
七 django的請求生命週期
https://www.cnblogs.com/liuqingzheng/articles/9509787.html#_label3
八 做業相關
1 圖書管理系統多表設計
圖書表--->出版社表---->一對多
一對多的關係一旦確立,關聯字段寫在多的一方
圖書表--->做者表------>多對多
多對多關係,須要建立第三張表
2 三個表,再加上以個鏈接表
圖書表
出版社表
做者
3 圖書管理系統:(需完成)
1 做者增刪查改
2 出版社的增刪查改
3 圖書的增刪查改html