摘要: from functools import wraps def check_login(func): @wraps(func) def inner(request, *args, **kwargs): next_url = request.get_full_path() if request.session.get("user"): ... 阅读全文
posted @ 2018-11-21 22:08 _杨魏 阅读(1138) 评论(0) 推荐(1) 编辑
摘要: 1. 创建一个示例 1.1 第一步 首先创建一个django项目,创建app01, 连接数据库,做好准备工作。 然后在templates目录下创建两个html: login.html负责登录页面; backend页面代表后台页面。 1 <!DOCTYPE html> 2 <html lang="en 阅读全文
posted @ 2018-11-21 22:06 _杨魏 阅读(5994) 评论(0) 推荐(1) 编辑
摘要: 1. Session的由来 Cookie虽然在一定程度上解决了“保持状态”的需求,但是由于Cookie本身最大支持4096字节,以及Cookie本身保存在客户端,可能被拦截或窃取,因此就需要有一种新的东西,它能支持更多的字节,并且它保存在服务器,有较高的安全性。这就是Session。 问题来了,基于 阅读全文
posted @ 2018-11-21 21:51 _杨魏 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 1. Cookie 1.1 Cookie的由来 大家都知道HTTP协议是无状态的。无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系, 它不会受前面的请求响应情况直接影响, 也不会直接影响后面的请求响应情况。 一句话来概括, 对于服务器来说, 每次的请求都是全新 阅读全文
posted @ 2018-11-21 21:42 _杨魏 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 参数可以是: 一个模型: 将调用模型的get_absolute_url()函数 一个视图, 可以带有函数: 可以使用urlresolvers.reverse来反向解析名称 一个绝对的或相对的URL, 将原封不动的作为重定向的位置. 默认返回一个临时的重定向, 传递permanent=True可以返回 阅读全文
posted @ 2018-11-21 20:51 _杨魏 阅读(33279) 评论(0) 推荐(7) 编辑
摘要: 结合一个给定的模板和一个给定的上下文字典, 并返回一个渲染后的HttpResponse对象。 参数: request: 用于生成响应的请求对象 template_name: 要使用的模板的完整名称, 可选的参数 context: 添加到模板上下文的一个字典. 默认是一个空字典. 如果字典中的某个值是 阅读全文
posted @ 2018-11-21 20:46 _杨魏 阅读(37724) 评论(5) 推荐(11) 编辑
摘要: JsonResponse是HttpResponse的子类, 专门用来生成JSON编码的响应. 默认只能传递字典类型, 如果要传递非字典类型需要设置一下safe关键字参数. 阅读全文
posted @ 2018-11-21 20:41 _杨魏 阅读(1511) 评论(0) 推荐(0) 编辑
摘要: 与由DJango自动创建的HttpRequest对象相比, HttpResponse对象是我们的职责范围了. 我们写的每个视图都需要实例化, 填充和返回一个HttpResponse. HttpResponse类位于django.http模块中. 1. 使用 传递字符串 设置或删除响应头信息 2. 属 阅读全文
posted @ 2018-11-21 20:40 _杨魏 阅读(994) 评论(0) 推荐(0) 编辑
摘要: 当一个页面被请求时,django就会创建一个包含本次请求原信息的HttpRequest对象。 django会将这个对象自动传递给响应的视图函数,一般视图函数约定俗成地使用request参数承接这个对象。 1. 请求相关的常用值 path_info: 返回用户访问url, 不包括域名 method: 阅读全文
posted @ 2018-11-21 20:39 _杨魏 阅读(3264) 评论(0) 推荐(0) 编辑
摘要: 1. 使用装饰器装饰FBV FBV本身就是一个函数,所以和给普通的函数加装饰器无差: 2. 使用装饰器装饰CBV 类中的方法与独立函数不完全相同,因此不能直接将函数装饰器应用于类中的方法,我们需要先将其转换为方法装饰器。 django中提供了method_decorator装饰器用于将函数装饰器转化 阅读全文
posted @ 2018-11-21 20:38 _杨魏 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 编写视图 一个视图函数,或者简短来说叫做视图,是一个简单的Python函数,它接受web请求,并且返回web响应。 响应可以是一个网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片,任何东西都可以。 无论视图本身包含什么逻辑,都要返回响应。 代码写在哪里也无所谓,只要它在你 阅读全文
posted @ 2018-11-21 20:36 _杨魏 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 我们之前写过的是基于函数的view,就叫FBV。还可以把view写成基于类的。 1. FBV版 2. CBV版 基于反射,实现根据请求方式不同,执行不同的方法。 原理: (1)路由:url view函数 dispatch方法(根据反射执行其他method方法) 使用CBV时要注意,请求过来后会先执行 阅读全文
posted @ 2018-11-21 20:34 _杨魏 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 1. 模板系统的介绍 在这个例子视图中返回文本的方式有点特别,HTML直硬编码在Python代码之中。 尽管这种技术便于解释视图是如何工作的,但直接将HTML硬编码到你的视图里却不是一个好方法。原因如下: 对页面设计进行的任何改变都必须对Python代码进行相应的修改。站点设计的修改往往比底层Pyt 阅读全文
posted @ 2018-11-21 20:30 _杨魏 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 即使不同的APP使用相同的URL名称,URL的命名空间模式也可以让你唯一反转命名的URL。 例如: project中的urls.py app01中的urls.py app02中的urls.py 现在,这两个app中的url名称是重复的,但是反转URL的时候就可以通过命名空间的名称得到当前的URL。 阅读全文
posted @ 2018-11-21 20:27 _杨魏 阅读(646) 评论(0) 推荐(0) 编辑