python登录网页_python_Django简单的登录页面

一、命题

是做一个有技术的黑盒测试,还是做一个黑盒测试,这个是一个为了带Django初学者更容易认识这个框架的小例子

1.1伪造响应信息

bea18da6ba22

image.png

浏览器运行结果

bea18da6ba22

image.png

二、创建

根据Django的MTV 模式,我们先输入指令创建

app :python manage.py startapp cmdb

这里的app意思就是程序模块

如图我们创建的一个基础框架

bea18da6ba22

image.png

获取更多的返回信息request.environ

for k,v in request.environ.items():

print(k,v)

bea18da6ba22

image.png

三、编写

在templates 文件下创建 login.html,写一个表单提交

用户名

密码

我们现在J_Login文件下的urls.py,写上url的条件映射对应的处理函数

#引入逻辑处理模块

from cmdb import views

urlpatterns = [

url(r'^admin/', admin.site.urls),

#创建映射关系

url(r'^login', views.login),

]

ulr的映射我们写好后,开始写用户提交到页面的代码逻辑处理,也就是在我们创建app模块下 views里面写。这里的app模块指的是cmdb

from django.shortcuts import HttpResponse

from django.shortcuts import redirect

#创建url对应的函数映射

def login(request):

#判断是否是POST 返回

if request.method == 'POST':

#接受 html name 是user和pwd的标签

user = request.POST.get('user',None)

pwd = request.POST.get('pwd', None)

if user =='123' and pwd=='123' :

#重定向百度

return redirect('https://www.baidu.com')

#去读index,通过HTTpResponse 方法返回文件内容

with open('templates/index.html', 'rb' ) as f:

data =f.read()

f.close()

return HttpResponse(data)

上面的这种方式只是为了让我们更加理解,工作原理,通过文件的读取,在页面展示对应的读取html,但实际生产生活中我们会用到下面这种,而不是用io来读取展示 request.POST.get可以理解,去html找name名的标签属性{‘name’:‘user’}

下面是实际生产生活的写法:

我们先在我们的提交表单的html加上一句话用{{}} 双大括号 上

{{ msg }}

改动我们的view

from django.shortcuts import render

from django.shortcuts import redirect

#创建url对应的函数映射

def login(request):

msg = ''

#判断是否是POST 返回

if request.method == 'POST':

#接受 html name 是user和pwd的标签

user = request.POST.get('user',None)

pwd = request.POST.get('pwd', None)

if user =='123' and pwd=='123' :

#重定向百度

return redirect('https://www.baidu.com')

else:

msg = '用户名密码错'

return render(request, 'index.html',{'msg':msg})

#去读index.html

return render(request,'index.html',{'msg':msg})

之前我们用HttpResponse,通过文件的读写返回,这把我们用render方法直接返回对应页面,而且render方法中,可用字典的方式向页面返回我们提前用双大括号在页面做好的标记位置返回值,但这个前提是我们在settings.py 的设置文件做了设置

bea18da6ba22

image.png

四、提升

光写一个没有数据库的登录没意思,我们在写一个页面,可以进行不通过数据库的假数据用户添加

我们在templates 文件夹下创建一个home.html

{% for infos in user_info %}

用户名

{{ infos.u}}

密码

{{infos.p}}

{% endfor %}

在urls做关系映射

rom cmdb import views

urlpatterns = [

url(r'^admin/', admin.site.urls),

#创建映射关系

url(r'^login', views.login),

url(r'^home', views.home),

]

编写home方法的代码

USER_LIST =[{'user':'w','pwd':'123'}]

def home(request):

if request.method == 'POST':

u = request.POST.get('user',None)

p = request.POST.get('pwd',None)

temp = {'user':u, 'pwd':p}

USER_LIST.append(temp)

#返回字典在页面展示

return render(request,'home.html',{'user_List':USER_LIST})

(二)、字典传值

view 层

USER_DICT={

'k1':'v1',

'k2':'v2',

}

def test(request):

return render(request,'test.html',{'user_dict':USER_DICT})

templates 模块

{{ user_dict.k1 }}

{% for k,v in user_dict.items %}

{{ k }}-{{v}}

{% endfor %}

字典的循环方法 跟python 一样有value , key, items

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值