day72Django之ORM

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

相關文章
相關標籤/搜索