python学习之--Django--Get and Post

1.

首先创建一个登陆界面 login.html

<span style="font-family:SimSun;font-size:12px;"><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></span>
在 views.py中添加

<span style="font-family:SimSun;font-size:12px;"><span style="font-family:KaiTi_GB2312;font-size:12px;">def login_page(request):
	return render(request, 'login.html')</span></span>

在urls.py中添加

<span style="font-family:SimSun;font-size:12px;"><span style="font-family:KaiTi_GB2312;font-size:12px;">url(r'^login_page/', 'app1.views.login_page'),</span></span>

这样就可以通过localhost:8000/app1/login_page/

访问登陆界面

接着编写login函数用来处理登陆动作,在urls.py上配置路径

<span style="font-family:SimSun;font-size:12px;"><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'] = username
		context['password'] = password
		if 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></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请求的主体。









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值