成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

Django視圖、傳參和forms驗證操作

瀏覽:6日期:2024-09-25 13:04:30

簡介視圖

主要內(nèi)容:URLconf、HttpRequest對象、HttpResponse

1)視圖接受Web請求并且返回Web響應(yīng)

2)視圖就是一個python函數(shù),被定義在views.py中

3)響應(yīng)可以是一張網(wǎng)頁的HTML內(nèi)容,一個重定向,一個404錯誤等等

4)在http請求中產(chǎn)生兩個核心對象,所在位置是,django.http:

http請求:HttpRequest對象

http響應(yīng):HttpResponse對象

這兩個對象是由django幫我構(gòu)造的

URLconf相關(guān)概述

• 在settings.py文件中通過ROOT_URLCONF指定根級url的配置

• urlpatterns是一個url()實(shí)例的列表,我們把它稱為路由,它里面的每一個url()我們稱為路由配置

• 一個url()對象包括:正則表達(dá)式、視圖函數(shù)、可選參數(shù)、名稱name

• 請求的url被看做是一個普通的python字符串,進(jìn)行匹配時不包括get或post請求的參數(shù)及域名。

字典Context={}上下文,在html頁面里有參數(shù)時要封裝到字典里作為render的第三個參數(shù)返回也可以直接寫字典存變量 context={’name’:’lm’}

在html模板語言里:模板語言注釋{#顯示。。#} 在模板里顯示變量時用{{’name’}}用來顯示變量。(取消字典context的{})

for循環(huán):

{% for num in b %} b為列表

{{num}}

{%endfor%}<br>

{% for key,value in c.items %} #c為字典

{{key}}---->{{value}}

{% endfor %}<br>

{% if 條件 %} 滿足條件執(zhí)行語句{% else %}不滿足條件的語句 {% endif %}

URL的反向解析(軟連接)

如果在視圖、模板中使用硬編碼的鏈接,在urlconf發(fā)生改變時維護(hù)是一件非常麻煩的事情

解決:在做鏈接時,通過指向urlconf的名稱,也就是我們配置的namespace和name,動態(tài)生成鏈接地址

網(wǎng)頁模板語言的路徑的表示'{% url ’namesapce(分發(fā)路徑的名字):name(url的別名)’%}'

視圖:使用django.core.urlresolvers.reverse()函數(shù)

在模板語言中()[]是非法的用就報錯

路由配置

include這個方法,會把經(jīng)過主路由匹配成功后剩下的路徑,分發(fā)給我們app里面的子路由去處理,它并不是嚴(yán)格匹配,正則是沒有結(jié)束符$的,第一個參數(shù)代表分發(fā)給哪個路由配置文件去處理,第二個參數(shù)namespace代表反向解析,和url()當(dāng)中name參數(shù)作用類似。

主路由配置:主路由就是我們項目設(shè)置文件夾當(dāng)中和settings.py文件同級的那個urls.py文件里面的urlpatterns。把主路由當(dāng)作調(diào)度分發(fā)路由的工具。 首頁放在主路由

子路由:分成不同的app模塊(app里配置urls.py文件)主路由判斷分子路由操作

urlpatterns 里的include為子路由分發(fā)。主路由的urlpatterns里的url(r’^news/’,include(’news.urls’,namespace='news')) news為應(yīng)用模塊

路徑傳參(位置和關(guān)鍵詞)模板語言在大括號里{% url ’news:news_date’2018 4 20 %}

未命名正則表達(dá)式組傳參(位置傳參):url(r’/(d+)/(d+)/(d+)/$’)

Django視圖、傳參和forms驗證操作

視圖函數(shù)如下

Django視圖、傳參和forms驗證操作

命名正則表達(dá)式組傳參(關(guān)鍵字傳參):視圖函數(shù)中的參數(shù)可以是亂序

url(r’/(?P<year>d+)/(?P<mouth>d+)/(?p<day>d+)/$’)

Django視圖、傳參和forms驗證操作

請求方式傳參:模版語言傳參:{% url ’news:news_date’%}?name=lm&a=5 與url路徑無關(guān)

Django視圖、傳參和forms驗證操作

所有form表單提交都需要forms驗證,再前端form表單需要制定提交路徑 action='{% url ’users:user_register’ %}'

與方式method='post'

在user的app中創(chuàng)建forms.py文件,填寫驗證條件

from django import formsfrom captcha.fields import CaptchaFieldfrom .models import UserProfile,EmailVerify class UserRegisterForm(forms.Form): email = forms.EmailField(required=True,error_messages={ ’required’:’郵箱必須填寫’ }) password = forms.CharField(min_length=3,max_length=20,required=True,error_messages={ ’required’: ’密碼必須填寫’, ’min_length’:’密碼最少得3個’, ’max_length’: ’密碼最多20個’, }) captcha = CaptchaField(error_messages={ ’invalid’:’驗證碼錯誤’ })

在views.py文件中

from .forms import UserRegisterFormdef user_register(request): if request.method == ’GET’: user_register_form = UserRegisterForm() return render(request,’users/register.html’,{ ’user_register_form’:user_register_form }) else: user_register_form = UserRegisterForm(request.POST)#進(jìn)行驗證 if user_register_form.is_valid():#判斷是否合法 email = user_register_form.cleaned_data[’email’]#獲取request數(shù)據(jù) password = user_register_form.cleaned_data[’password’] user = UserProfile.objects.filter(Q(email=email)|Q(username=email)) if user: return render(request,’users/register.html’,{ ’msg’:’用戶已經(jīng)存在’ }) else: a = UserProfile() a.username = email a.email = email a.set_password(password)#加密密碼 a.si_active=False#設(shè)置密碼未激活,需要郵箱驗證激活 a.save() else: return render(request,’users/register.html’,{ ’user_register_form’:user_register_form })

獲得參數(shù)用:zhaoliying=request.GET.get(’name’,None) GET類字典(可以一鍵多值用getlist取值) None沒有參數(shù)默認(rèn)返回None。前端傳到后端的數(shù)據(jù)都為字符串

CSRF跨站偽造攻擊錯誤。在獲取POST方式傳遞的參數(shù)時,要取消錯誤在form表單里加入 {% csrf_token %}

HttpReqeust對象

下面除非特別說明,屬性都是只讀的,都是字符串

1)path:一個字符串,表示請求的頁面的完整路徑,不包含域名和請求參數(shù)

2)method:一個字符串,表示請求使用的HTTP方法,常用值包括:’GET’、’POST’

3)encoding:一個字符串,表示提交的數(shù)據(jù)的編碼方式

A)如果為None則表示使用瀏覽器的默認(rèn)設(shè)置,一般為utf-8

B)這個屬性是可寫的,可以通過修改它來修改訪問表單數(shù)據(jù)使用的編碼,接下來對屬性的任何訪問將使用新的encoding值

4)GET:一個類似于字典QueryDict的對象,包含get請求方式的所有參數(shù),與url請求地址中的參數(shù)對應(yīng),位于?后面參數(shù)的格式是鍵值對,如key1=value1。多個參數(shù)之間,使用&連接。獲得參數(shù)用:data = request.GET.get(‘鍵’,默認(rèn))獲取

5)POST:一個類似于字典QueryDict的對象,包含post請求方式的所有參數(shù)。控件要有name屬性,則name屬性的值為鍵,value屬性的值為鍵,構(gòu)成鍵值對提交。獲得參數(shù)用:data = request.POST.get(‘鍵’,默認(rèn))獲取

6)FILES:一個類似于字典的對象,包含所有的上傳文件

7)COOKIES:一個標(biāo)準(zhǔn)的Python字典,包含所有的cookie,鍵和值都為字符串

8)session:一個既可讀又可寫的類似于字典的對象,表示當(dāng)前的會話,只有當(dāng)Django 啟用會話的支持時才可用,詳細(xì)內(nèi)容見“狀態(tài)保持”與python字典不同,QueryDict類型的對象用來處理同一個鍵帶有多個值的情況。

關(guān)于cookie的操作

1)Cookie,有時也用其復(fù)數(shù)形式 Cookies,指某些網(wǎng)站為了辨別用戶身份、進(jìn)行 session 跟蹤而儲存在用戶本地終端上的數(shù)據(jù)(通常經(jīng)過加密)。定義于 RFC2109 和 2965 中的都已廢棄,最新取代的規(guī)范是 RFC6265 [1] 。(可以叫做瀏覽器緩存)

2)cookie是服務(wù)器設(shè)置存儲在瀏覽器的一段文本信息,例如用戶登錄的時候不用輸入密碼了。

以上這篇Django視圖、傳參和forms驗證操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Django
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
日韩女优视频免费观看| 亚洲一级二级| 黄色日韩精品| 日本一区二区三区国色天香 | 女人色偷偷aa久久天堂| 精品久久一区二区三区| 丁香一区二区三区| 日韩一二三四区| 丁香五精品蜜臀久久久久99网站 | 9人人澡人人爽人人精品| 欧美成人乱码一区二区三区| 成人性生交大合| 欧美大片一区二区| 成人国产一区二区三区精品| 日韩欧美色电影| 成人av电影免费在线播放| 欧美变态口味重另类| 成人av电影在线观看| 久久综合久色欧美综合狠狠| 欧美一区二区三区在线免费观看 | 欧美午夜影院| 亚洲婷婷综合色高清在线| 99成人在线| 午夜久久久久久| 色播五月激情综合网| 免费在线观看一区| 91麻豆精品国产自产在线| 本田岬高潮一区二区三区| 久久精品亚洲国产奇米99| 精品91久久久久| 亚洲6080在线| 欧美三级中文字幕| 国产.精品.日韩.另类.中文.在线.播放| 精品国产乱码久久久久久1区2区 | 久久精品一区二区三区中文字幕| 日韩激情中文字幕| 欧美欧美欧美欧美| 91一区一区三区| 亚洲天堂2016| 久久一区欧美| 国产伦精品一区二区三区在线观看| 欧美一区二区三区视频在线观看| 成人av电影在线网| 国产精品进线69影院| 国产麻豆综合| 国模套图日韩精品一区二区| 久久综合九色综合欧美98| 在线成人www免费观看视频| 亚洲chinese男男1069| 91精品中文字幕一区二区三区| 成人精品免费网站| 国产精品第五页| 一本久久综合亚洲鲁鲁五月天| 国产精品一区专区| 国产精品日韩成人| 一本色道久久加勒比精品| 成人一道本在线| 中文字幕欧美一| 一本大道综合伊人精品热热| 国产成人精品三级麻豆| 国产精品久久久久一区| 色婷婷精品久久二区二区蜜臂av | 一本色道久久综合亚洲91| 国内精品国产成人| 亚洲国产成人在线| 久久亚洲欧洲| 本田岬高潮一区二区三区| 亚洲乱码国产乱码精品精可以看| 欧美日韩在线播放| 国产精品大片免费观看| 日本欧美久久久久免费播放网| 日韩久久久精品| 亚洲精品乱码| 国产在线精品一区二区夜色| 欧美群妇大交群中文字幕| 欧美网站在线| 久久99精品久久久久久动态图| 国产女人18毛片水真多成人如厕 | 亚洲激情自拍| 久久精品国产99国产精品| 国产午夜亚洲精品不卡| 色呦呦网站一区| 欧美在线日韩精品| 日本不卡不码高清免费观看| 久久久午夜精品理论片中文字幕| 欧美亚洲一区二区三区| 成人一级片网址| 亚洲成人福利片| 久久精品在这里| 欧美性videosxxxxx| 亚洲无吗在线| 国产高清一区日本| 亚洲主播在线观看| 欧美成人精品3d动漫h| 免费亚洲网站| 欧美午夜在线视频| 国产精品亚洲一区二区三区妖精| 悠悠色在线精品| 久久亚洲一区二区三区明星换脸| 色婷婷综合五月| 欧美视频成人| 国产成人午夜高潮毛片| 亚洲成av人片在线观看无码| 久久精品亚洲一区二区三区浴池| 欧美性videosxxxxx| 精品动漫一区| www.欧美亚洲| 日韩国产精品91| 成人免费在线视频观看| 欧美一级免费观看| 久久久久久亚洲精品杨幂换脸| 91丨九色丨蝌蚪富婆spa| 美国av一区二区| 亚洲最新视频在线观看| 国产三级三级三级精品8ⅰ区| 欧美色中文字幕| 亚洲一区二区三区涩| 牛牛国产精品| 国产91精品一区二区麻豆网站| 日本va欧美va瓶| 亚洲欧美视频一区| 久久久久高清精品| 777午夜精品免费视频| 色国产综合视频| 国产精品美女黄网| 国内精品久久久久久久97牛牛 | 国产精品久久久久久一区二区三区 | 中文字幕日韩欧美一区二区三区| 精品国精品国产| 欧美日韩视频一区二区| 国产精品日韩欧美一区二区三区| 欧美日韩一区二区三| 国产白丝精品91爽爽久久| 免费的国产精品| 亚洲一二三级电影| 亚洲色大成网站www久久九九| 国产欧美日韩视频在线观看| 日韩一区二区在线看片| 欧美日韩成人一区二区| 久久天天综合| 国产精品一页| 99精品国产99久久久久久福利| 欧美日本二区| 欧美黄污视频| 欧美在线高清| av亚洲精华国产精华精| 岛国精品一区二区| 久久福利资源站| 免费在线观看成人| 青青草成人在线观看| 视频一区二区三区在线| 亚洲超丰满肉感bbw| 亚洲国产乱码最新视频| 亚洲曰韩产成在线| 亚洲一区二区三区中文字幕| 亚洲精选一二三| 一区二区三区四区蜜桃 | 日韩精品久久理论片| 亚洲第一福利一区| 午夜欧美一区二区三区在线播放| 亚洲日本中文字幕区| 亚洲欧洲av在线| 国产精品网曝门| 中文欧美字幕免费| 国产精品污www在线观看| 日本一区二区三区在线观看| 中文字幕va一区二区三区| 中文字幕免费不卡| 国产精品视频你懂的| 国产精品动漫网站| 亚洲乱码一区二区三区在线观看| 一区二区三区视频在线看| 一区二区三区中文字幕精品精品| 一区二区三区欧美久久| 亚洲在线观看免费视频| 亚洲影院理伦片| 婷婷成人综合网| 日本不卡123| 国产乱子伦一区二区三区国色天香| 国产精品538一区二区在线| 成人免费看黄yyy456| 91在线播放网址| 国语自产精品视频在线看8查询8| 亚洲区国产区| 新67194成人永久网站| 欧洲一区二区三区在线| 91.com在线观看| 久久免费午夜影院| 亚洲色图.com| 日日摸夜夜添夜夜添精品视频 | 亚洲高清视频一区| 国产精品乱码一区二区三区| 久久在线精品| 欧美精品亚洲二区| 26uuu精品一区二区三区四区在线| 欧美韩国日本不卡| 亚洲综合精品久久| 久久99国产精品久久99果冻传媒| 成人性色生活片| 国产精品久久7|