Django笔记06
chocie
choices = ((1,"男"),(2,"女"),(3,"保密"))gender = models.IntegerField(choices=choices)
user_obj.get_gender_display()
# 獲取具有choice屬性的字段對應(yīng)的解釋,固定用法
# get_字段_display()
MTV
Django是MTV模式的框架
M:models
T:templates
V:views
MVC
M:models
V:views
C:controller(url + views)
本質(zhì)上MTV就是MVC
ManyToManyField
多對多關(guān)系三種創(chuàng)建方式第一種ManyToManyField()自動創(chuàng)建第三張表
第二種純手動
class Book(models.Model):
name = models.CharField(max_length=32)
class Author(models.Model):
name = models.CharField(max_length=32)
class Book_to_Author(models.Model):
book = models.ForeignKey(to="Book")
author = models.ForeignKey(to="Author")
第三種與自動創(chuàng)建相同,可以自己增加額外的字段
class Book(models.Model):
name = models.CharField(max_length=32)
authors = models.ManyToManyField(to="Author",through="Book_to_Author",through_fields=("book","author"))
class Author(models.Model):
name = models.CharField(max_length=32)
class Book_to_Author(models.Model):
booke = models.ForeignKey(to="Book")
author = models.ForeignKey(to="Author")
Ajax
前端朝后端發(fā)送請求的方式
a標(biāo)簽href GET請求
瀏覽器輸入ulr GET請求
form表單 GET/POST請求
Ajax GET/POST請求
前端朝后端發(fā)送數(shù)據(jù)的編碼格式
contentType參數(shù),用來標(biāo)識前端反射數(shù)據(jù)的編碼格式
Urlencoded:是form表單和ajax提交數(shù)據(jù)默認(rèn)的編碼格式(request.POST獲取)
fromdata:文件提交編碼(request.FILES獲取)
appliction/json:json格式(request.body)
ajax特點(diǎn):
1 異步提交 2 局部刷新
ajax與form表單的不同點(diǎn)
1 from表單提交的數(shù)據(jù)格式只能是urlencoded和formdata,不支持json格式
2 from表單提交數(shù)據(jù),頁面刷新
3 ajax局部刷新,異步提交,并且支持發(fā)送json格式數(shù)據(jù)
ajax提交數(shù)據(jù)必備的參數(shù)
url 提交到哪里
type 提交方式
data 提交的數(shù)據(jù)
提交后端處理之后的結(jié)果 (異步回調(diào))success:function(data){}
ajax提交json格式數(shù)據(jù)
contentType:"application/json"
使用JSON.stringify包裹數(shù)據(jù)
編碼格式與數(shù)據(jù)類型必須一致
ajax提交文件
1 不寫使用內(nèi)置對象:FormData
2 獲取input框文件對象:$("")[0].files[0]
3 指定兩個(gè)參數(shù)為false:
processData:false 讓后端不處理數(shù)據(jù)
contentType:false 讓后端使用formdata內(nèi)部數(shù)據(jù)格式
4 后端用request.FILES獲取文件對象
批量插入數(shù)據(jù)
li = []for i in range(1000):
li.append(models.Book(name="第%s本書"%i))
models.Book.objects.bulk_create(li)
分頁器
固定用法,獲取數(shù)據(jù)當(dāng)前想訪問的頁面page = request.GET.get('page',1)
實(shí)例化分頁器對象
page_obj = Pagination(current_page=page,all_count=book_queryset.count())
對總數(shù)據(jù)對象進(jìn)行切片
page_querset = book_queryset[page_obj.start:page_obj.end]
前端使用
{{ page_obj.page_html|safe }}
?
轉(zhuǎn)載于:https://www.cnblogs.com/LinChengcheng/p/10738424.html
總結(jié)
以上是生活随笔為你收集整理的Django笔记06的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js判断输入数字是否是整数,金额、数字
- 下一篇: koa 写简单服务