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. 支付宝支付功能(使用支付宝sdk)

    1.准备参数        新建一个公共参数配置类NewAlipayconfig (可将参数存放到config配置文件中读取)          public class NewAlipayconfi ...

  2. ARTS-S golang函数作为参数传递

    函数作为参数传递在单元测试的时候非常有用,看下面的例子. package main import "fmt" func output(f func(string, string, ...

  3. 玩转摄像头之 基于SDRAM缓冲 USB2.0视频采集系统 MT9T001、MT9P031 演示 展示

    玩转摄像头之  基于SDRAM缓冲 USB视频采集系统  MT9T001.MT9P031 最新设计的系统: 核心板(FPGA+SDRAM)+底板(68013+DVP)+sensor 先看图 核心板 正 ...

  4. 大数据学习笔记——Hadoop编程实战之HDFS

    HDFS基本API的应用(包含IDEA的基本设置) 在上一篇博客中,本人详细地整理了如何从0搭建一个HA模式下的分布式Hadoop平台,那么,在上一篇的基础上,我们终于可以进行编程实操了,同样,在编程 ...

  5. Vue如何实现数据响应的

    参考博客:https://medium.com/vue-mastery/the-best-explanation-of-javascript-reactivity-fea6112dd80d 翻译博客: ...

  6. Manjaro-kde-18.1.3安装体验

    身为Linux排名第一的版本,怎么能不安装一下亲自体验 制作启动U盘 Manjaro身为arc系列的一员,所以我选择使用raw的方式写入(其实我是在Ubuntu中用dd方式写入的,Windows用户也 ...

  7. 6张图说清楚Tomcat原理及请求流程

    前言 很多东西在时序图中体现的已经非常清楚了,没有必要再一步一步的作介绍,本文以图为主,然后对部分内容加以简单解释. 绘制图形使用的工具是 PlantUML + Visual Studio Code ...

  8. 手把手教你看懂并理解Arduino PID控制库——引子

    介绍 本文主要依托于Brett Beauregard大神针对Arduino平台撰写的PID控制库Arduino PID Library及其对应的帮助博客Improving the Beginner’s ...

  9. CentOS7.2下部署zabbix4.0

    整体部署采用centos7+php+apache+mariadb 基础环境配置优化 1. 关闭防火墙 [root@monitor_53 ~]$ systemctl stop firewalld [ro ...

  10. 如何快速将多个excel表格的所有sheet合并到一个sheet中

    1.将需要合并的excel文件放在同一个文件夹下: 2.新建一个excel表格并打开,右键sheet1,查看代码,然后复制下方的代码到代码框里,点击菜单栏中的“运行”–“运行子过程/用户窗体”,等待程 ...