}

Flask之Config学习

自己用Flask做了一个博客(www.hbnnlove.sinaapp.com),之前苦于没有对源码解析的文档,只能自己硬着头皮看。现在我把我自己学习Flask源码的收获写出来,也希望能给后续要学习FLask的人提供一点帮助。先从config说起。 Flask主要通过三种method进行配置: - 1、from_envvar - 2、from_pyfile - 3、

阅读全文

Flask的request获取参数原理

之前对WSGI及请求上下文进行了学习,[Flask上下文](http://hbnnlove.sinaapp.com/article/42 "Flask上下文"),[WSGI](http://hbnnlove.sinaapp.com/article/40),现在就介绍一下request获取参数的原理。 request用法如下: request.args request.form

阅读全文

Flask信号机制

Flask各模块之间通过信号signal进行通信,信号的存在使得各模块之间不需要进行互相调用,也就是所谓的解耦合。信号对于我们进行单元测试也是特别的重要。 信号和一些内置的装饰器比较类似,如request_started和before_request,虽然类似,但是他们工作方式完全不同。before_request是按顺序执行,并返回一个响应类;然而request_started信号仅仅是一

阅读全文

gunicorn+supervisor+nginx+fabric部署Web应用

学习如何去部署一个Web应用。 1、首先选择一个WSGI服务器,之前看的是uWSGI,但uWSGI配置稍微麻烦些,因此这里考虑使用gunicorn。 2、使用supervisor控制进程; 3、选用静态服务器,选用nginx做负载均衡,以及处理静态文件; 4、使用fabric,ansible等工具批量部署。 下面记录我Django项目部署的过程(系统是Ubuntu

阅读全文

supervisor的配置信息

supervisor的配置信息具体如下,转载自(http://lixcto.blog.51cto.com/4834175/1539136): unix_http_server] file=/tmp/supervisor.sock ; socket文件的路径,supervisorctl用XML_RPC和supervisord通信就是通过它进行

阅读全文

Django中Request类详解

Django主要利用可调用对象WSGIHandler来处理请求响应。 WSGIHandler会根据获得的environ构造WSGIRequest请求类,这里首先说一下environ。 environ是非常重要的变量,它包括所有的用户信息,即它负责接收所有的用户请求参数。environ包含 CGI 环境变量,环境变量在[CGI环境变量](https://tools.ietf.org/html

阅读全文

Django的CSRF介绍

1、CSRF介绍 CSRF(Cross-Site Request Forgery,跨站点伪造请求)是一种网络攻击方式,该攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在未授权的情况下执行在权限保护之下的操作,具有很大的危害性。具体来讲,可以这样理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望

阅读全文

忘记密码后,重置密码的逻辑

逻辑: 主要是借鉴了Django内置的重置密码的逻辑。 1、如果忘记密码,用户填写注册时的邮箱; 2、根据邮箱,得到用户User object,并生成uidb64和token(用户加密); 3、将得到的重置密码链接发到邮箱; 4、用户根据得到的链接填写新密码; 1,2步骤 主要是根据注册邮箱得到重置密码链接。源代码: def

阅读全文

Django分页的实现原理

本文主要介绍Django中的分页是如何实现的,首先介绍分页的使用方法,然后介绍其实现原理。 1、使用方法: VIew视图: class CategoryArticleListView(BaseMixin,ListView): template_name = 'category.html' paginate_by = NUM_PER_PAGE

阅读全文

我的Django项目的权限机制

本文主要介绍我在Django博客使用的权限设置,我的博客中几乎所有的权限设置都是我自己写的。这么做的原因是我在写Flask博客的时候,学到了一些这方面的知识,感觉很不错。因此就借鉴里面的逻辑,自己写了这方面的代码。 1、关于文章的访问权限。 我就从Model和View两层来说。 首先我在Model中定义一个字段,用来指示是否公开,是否允许别人可见: 源代码如下: ACC

阅读全文

request.get_all_path()

登录

Sign Up

Forgotten Password