1、调试模式

Django项目下的settings.py 默认是DEBUG=True,开发的时候一般要开启调试模式,当项目完成发布必须要改成False,否则会暴露网站的配置信息,修改以下两行:

# DEBUG=True
# ALLOWED_HOST=[] # 表示允许哪些ip地址访问 DEBUG=True
ALLOWED_HOST=['*'] # 表示允许所有网站访问

如:404 则会显示 Not Found

2、错误视图

1)关闭调式模式后,默认会显示一个标准的错误页面,如果要显示自定义的页面,只需要在templates下自定义一个404.html ,不需要进行url的配置,Django会自动匹配

出现的原因一般是地址没有配置或配置出错

2) 500 服务端错误,一般为视图里代码出错
标准的显示页面未 Server Error(500),也可以自定义500页面,在templates下创建一个500.html

3、捕获url参数

进行url匹配时,把所需要捕获的部分设置成一个正则表达式组,这样django框架就会自动把匹配成功后的相应组的内容作为参数传递给视图函数.

1)位置参数:参数名可以随意指定

url(r'^delete(\d+)$',views.delete)  # 位置参数

def delete(request,bid):
return HttpResponse(bid)

  

2)关键字参数:在位置参数的基础上 给正则表达式组命名即可
?P<组名>
关键字参数,视图中参数名称必须和正则表达式组名一致

url(r'^delete(?P<num>\d+)$',views.delete)  # 关键字参数

def delete(request,num):    # 视图中参数名称必须和正则表达式组名一致 都是num
return HttpResponse(num)

4、登录案例

def delete(request,num):
return HttpResponse(num)

参数中request就是HttpRequest类型对象,request包含浏览器请求的信息
思路:
1、需要一个登陆页面 login.html
2、需要一个登陆后页面,如index.html
3、在views.py中 定义二个视图函数,一个是登录页面,一个是获取登录信息并做校验

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body>
<--
form表单必须有的参数:
method:post或者get,post安全
action 必须要有规定当提交表单时,向何处发送表单数据
-->
<form method="post" action="/login_check">
用户名:<input type="text" name="username"/><br/>
密码: <input type="password" name="password"/><br/>
<input type="submit" value="提交"/>
</form>
</body>
</html>

  

def my_render(request,template_path,context_dict):

    temp = loader.get_template(template_path)
# context=RequestContext(request,context_dict)
context=context_dict
res_html=temp.render(context)
return HttpResponse(res_html)

 

def login(request):
return my_render(request,'booktest/login.html',{})

 

def login_check(request):
"""
request.POST 保存的是post提交的参数
request.GET 保存的是get提交的参数
""" # 1. 获取提交的用户名和密码
# print(type(request.POST)) # 类型QueryDict类型对象,跟字典相似
username = request·POST.get('username')
password = request·POST.get('password') # 2. 进行登录校验并响应应答,实际情况用户名和密码是保存在数据库里的
if username=='admin' and password =='123456' :
# 用户名和密码正确,跳转到首页
return HttpResponseRedirect('/index') else:
# 用户名和密码错误,跳转登录页面
return HttpResponseRedirect('/login')

  

 

 

												

07-Django视图进阶的更多相关文章

  1. Django 2.0 学习(07):Django 视图(进阶-续)

    接Django 2.0 学习(06):Django 视图(进阶),我们将聚焦在使用简单的表单进行处理和精简代码. 编写简单表单 我们将用下面的代码,来替换之前的detail模板("polls ...

  2. Django 2.0 学习(06):Django 视图(进阶)

    概述 Django中的特方法,该方法代表了Django的Web页面,并且视图具有特定的模板.以博客应用为例进行说明,在博客应用中应该包含下面的视图: 博客主页:显示最近的一些记录: 详细页面:单个详细 ...

  3. 1.2、Django 视图与网址__进阶

    Django 视图与网址进阶 1.1.简单使用: 把我们新定义的app加到settings.py中的INSTALL_APPS中 修改 HelloDjango/HelloDjango/settings. ...

  4. 07: Django 使用ldap登录、注销等

    目录:Django其他篇 01:Django基础篇 02:Django进阶篇 03:Django数据库操作--->Model 04: Form 验证用户数据 & 生成html 05:Mo ...

  5. Python之路【第十七篇】:Django【进阶篇 】

    Python之路[第十七篇]:Django[进阶篇 ]   Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接 ...

  6. Python之路【第十七篇】:Django【进阶篇】

    Python之路[第十七篇]:Django[进阶篇 ]   Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接 ...

  7. Python开发【第二十二篇】:Web框架之Django【进阶】

    Python开发[第二十二篇]:Web框架之Django[进阶]   猛击这里:http://www.cnblogs.com/wupeiqi/articles/5246483.html 博客园 首页 ...

  8. [diango]理解django视图工作原理

    前言:正确理解django视图view,模型model,模板的概念及其之间的关联关系,才能快速学习并上手使用django制作网页 本文主要讲解自己在学习django后对视图view的理解 在进入正文之 ...

  9. Python之路,Day15 - Django适当进阶篇

    Python之路,Day15 - Django适当进阶篇   本节内容 学员管理系统练习 Django ORM操作进阶 用户认证 Django练习小项目:学员管理系统设计开发 带着项目需求学习是最有趣 ...

  10. Django 2.0 学习(03):Django视图和URL(下)

    接上篇博文,继续分析Django基本流程. 编写第一个(view)视图函数 1.打开文件polls/views.py,输入下面的Python代码: from django.http import Ht ...

随机推荐

  1. 快速掌握zabbix配置

    有人说zabbix难点在配置,面对很多的配置项,不知道所以然了,其实我觉得这是没掌握好zabbix的学习方法,要掌握了zabbix的学习思路,可以在一个小时内快速掌握zabbix的各种配置,下面我将重 ...

  2. Linux-tac、diff、tree、echo、seq、重定向

    1.tac  方向输出文件,最后一行放在第一行的位置输出 2.diff  比较文件的内容 vimdiff:在vim中比较 3. tree  树状图显示目录内容 -d 只显示目录   -L  树状 目录 ...

  3. 【CuteJavaScript】Angular6入门项目(1.构建项目和创建路由)

    本文目录 一.项目起步 二.编写路由组件 三.编写页面组件 1.编写单一组件 2.模拟数据 3.编写主从组件 四.编写服务 1.为什么需要服务 2.编写服务 五.引入RxJS 1.关于RxJS 2.引 ...

  4. 【HTTP】HTTP 的15个常见知识点复习

    前言 自从入职新公司到现在,我们前端团队内部一直在做 ?每周一练 的知识复习计划,我之前整理了一个 每周一练 之 数据结构与算法 学习内容,大家也快去看看~~ 最近三周,主要复习 网络基础 相关的知识 ...

  5. layui扩展组件,下拉树多选

      项目介绍 项目中需要用到下拉树多选功能,找到两个相关组件moretop-layui-select-ext和wujiawei0926-treeselect,但是moretop-layui-selec ...

  6. redis(5)--redis集群之哨兵机制

    哨兵机制 在前面讲的master/slave模式,在一个典型的一主多从的系统中,slave在整个体系中起到了数据冗余备份和读写分离的作用.当master遇到异常终端后,需要从slave中选举一个新的m ...

  7. 【Git】远程分支

    [Git]远程分支 转载:https://www.cnblogs.com/yangchongxing/p/10239270.html 目录 ============================ 1 ...

  8. Swing JTable使用

    package cn.ychx; import java.awt.Dimension; import java.awt.Toolkit; import java.sql.Connection; imp ...

  9. 2019年12道RabbitMQ高频面试题你都会了吗?(含答案解析)

    RabbitMQ 面试题 1.什么是 rabbitmq 2.为什么要使用 rabbitmq 3.使用 rabbitmq 的场景 4.如何确保消息正确地发送至 RabbitMQ? 如何确保消息接收方消费 ...

  10. Python核心技术与实战 笔记

    基础篇 Jupyter Notebook 优点 整合所有的资源 交互性编程体验 零成本重现结果 实践站点 Jupyter 官方 Google Research 提供的 Colab 环境 安装 运行 列 ...