標籤:django python post and get
1.
首先建立一個登陸介面 login.html
<span style="font-family:KaiTi_GB2312;font-size:12px;">{% extends "base.html" %}{% block mainbody %}<form action="/app1/login/" method="post">{% csrf_token %}username:<input type="text" name="username"> <br>passowrd:<input type="password" name="password"> <br><input type="submit" value="Submit"></form>{{ username }} <br>{{ password }} <br>{% endblock %}</span>
在 views.py中添加
<span style="font-family:KaiTi_GB2312;font-size:12px;">def login_page(request):return render(request, 'login.html')</span>
在urls.py中添加
<span style="font-family:KaiTi_GB2312;font-size:12px;">url(r'^login_page/', 'app1.views.login_page'),</span>
這樣就可以通過localhost:8000/app1/login_page/
訪問登陸介面
接著編寫login函數用來處理登陸動作,在urls.py上配置路徑
<span style="font-family:KaiTi_GB2312;font-size:12px;">def login(request):context = {}context.update(csrf(request))if request.POST:username = request.POST['username']password = request.POST['password']context['username'] = usernamecontext['password'] = passwordif username=='viease' and password=='123456':return render(request, 'login.html', context)else:student_list = Student.objects.all()return render(request, 'template.html', { 'student_list' : student_list})</span>
成功登陸會顯示如下:
不然跳轉到template.html
Get方式,修改method為get
去掉
{% csrf_token %}
from django.core.context_processors import csrf
context = {}
context.update(csrf(request))
首先第一個問題為什麼post方法需要添加 csrf ?
是Django跨站偽造請求的保護措施。
第二個問題get和post的區別是什嗎?
Http定義了與伺服器互動的不同方法,最基本的方法有4種:GET,POST,PUT,DELETE。URL全稱是資源描述符,可以認為:一個URL地址,它用於描述一個網路上的資源,而HTTP中的GET,POST,PUT,DELETE就對應著對這個資源的查, 改, 增, 刪。所以GET一般用於擷取/查詢資源資訊,而POST一般用於更新資源資訊。GET方法是通過改寫URL的方式實現的。GET的資料利用URL?變數名=變數值的方法傳輸。可以用來用於傳輸一些不重要的資料。POST方法用於從用戶端向伺服器提交資料。使用POST方法時,URL不再被改寫。資料位元於http請求的主體。
python學習之--Django--Get and Post