python2.7的flask框架项目实战及深度使用
本专栏记录了一个简单的flask构建的blog项目,完事还有应用测试、API使用等深度使用的文章。希望和各位看官共同学习。。。。。。
luyaran
像永远快乐的阳光,追求那至高无上的完美乐园。
展开
-
win7下安装python2.7的flask框架以及创建虚拟环境
先说,本人的python版本为2.7。完事,咱们来看下如何安装这个flask框架。先来看安装这个easy_install这个鬼,我们先来安装这个。在https://pypi.python.org/pypi/ez_setup下载文件之后进行解压,之后放到python安装目录的Script目录下,完事使用进入你的目录中: 运行上面图片中红色框框中的命令,就算是开始安装了。出现如下界面代表安...原创 2018-07-17 14:12:18 · 1185 阅读 · 0 评论 -
python2.7的flask框架之入门简单小例子
各位看官参考这篇文章的前提就是各位已经安装好了flask框架哦,废话不多说,我们先来看一个最小的 Flask 应用:from flask import Flaskapp = Flask(__name__)@app.route('/')def hello_world(): return 'Hello World!'if __name__ == '__main__': ...原创 2018-07-18 16:04:22 · 3777 阅读 · 1 评论 -
python2.7的flask框架之调试模式
我们知道,run() 方法适用于启动本地的开发服务器,但是我们每次修改代码后都要手动重启它。但是如果启用了调试支持,服务器会在代码修改后自动重新载入,并在发生错误时提供一个相当有用的调试器,我们来看下代码:from flask import Flaskapp = Flask(__name__)@app.route('/')def hello_world(): return 'H...原创 2018-07-18 16:17:51 · 613 阅读 · 0 评论 -
python2.7的flask框架之路由使用(变量规则&唯一 URL / 重定向行为)
现代 Web 应用的 URL 十分优雅,易于人们辨识记忆,这一点对于那些面向使用低速网络连接移动设备访问的应用特别有用。如果可以不访问索引页,而是直接访问想要的那个页面,他们多半会笑逐颜开而再度光顾。然而在python的flask框架中,route() 装饰器把一个函数绑定到对应的 URL 上,我们来看一些基本的实例:@app.route('/')def index(): re...原创 2018-07-18 17:17:45 · 1233 阅读 · 0 评论 -
python2.7的flask框架之构造 URL&了解HTTP 方法
我们都知道,Flask 能匹配 URL,接下来,我们就来尝用 url_for() 来给指定的函数构造 URL。这个函数呢,接受函数名作为第一个参数,也接受对应 URL 规则的变量部分的命名参数。未知变量部分会添加到 URL 末尾作为查询参数。我们来看一些实例感受下:>>> from flask import Flask, url_for>>> app =...原创 2018-07-19 10:36:57 · 710 阅读 · 0 评论 -
python2.7的flask框架之引用js&css等静态文件
动态 web 应用也会需要静态文件,通常是 CSS 和 JavaScript 文件。理想状况下, 我们已经配置好 Web 服务器来提供静态文件,但是在开发中,Flask 也可以做到。 只要在我们的包中或是模块的所在目录中创建一个名为 static 的文件夹,在应用中使用 /static 即可访问。我们要给静态文件生成 URL ,需要使用特殊的 'static' 端点名:url_for('st...原创 2018-07-19 10:43:14 · 7976 阅读 · 0 评论 -
python2.7的flask框架之模板(html)渲染( Jinja2 模板引擎&render_template() 方法)
用 Python 生成 HTML 十分无趣,而且相当繁琐,因为我们必须手动对 HTML 做转义来保证应用的安全。为此,Flask 配备了 Jinja2 模板引擎。我们可以使用 render_template() 方法来渲染模板。并且需要做的一切就是将模板名和我们想作为关键字的参数传入模板的变量。来看一个简单的模板渲染的实例:from flask import render_template...原创 2018-07-19 10:56:25 · 2975 阅读 · 0 评论 -
python2.7的flask框架之环境局部变量&请求对象(request)
对于 Web 应用,与客户端发送给服务器的数据交互至关重要。在 Flask 中由全局的 request 对象来提供这些信息。那么我们会不会好奇,为什么这个对象是全局的,为什么 Flask 还能保证线程安全???答案就是环境作用域。Flask 中的某些对象是全局对象,但却不是通常的那种。这些对象实际上是特定环境的局部对象的代理。虽然很拗口,但实际上很容易理解。想象一下处理线程的环境。一个请求...原创 2018-07-19 13:23:22 · 672 阅读 · 0 评论 -
python2.7的flask框架之文件上传(file)
用 Flask 处理文件上传很简单。只要确保我们没忘记在 HTML 表单中设置 enctype="multipart/form-data" 属性,不然我们的浏览器根本不会发送文件。同时已上传的文件存储在内存或是文件系统中一个临时的位置,我们可以通过请求对象的 files 属性访问它们。每个上传的文件都会存储在这个字典里。它表现近乎为一个标准的 Python file 对象,但它还有一个 sav...原创 2018-07-19 13:27:57 · 1890 阅读 · 0 评论 -
python2.7的flask框架之重定向和错误提示
你可以用 redirect() 函数把用户重定向到其它地方。放弃请求并返回错误代码,用 abort() 函数。来看一个实例:from flask import abort, redirect, url_for@app.route('/')def index(): return redirect(url_for('login'))@app.route('/login')de...原创 2018-07-19 13:33:57 · 1088 阅读 · 0 评论 -
python2.7的flask框架之响应(response)
视图函数的返回值会被自动转换为一个响应对象。如果返回值是一个字符串, 它被转换为该字符串为主体的、状态码为 200 OK``的 、 MIME 类型是 ``text/html 的响应对象。来看下Flask 把返回值转换为响应对象的逻辑:如果返回的是一个合法的响应对象,它会从视图直接返回。 如果返回的是一个字符串,响应对象会用字符串数据和默认参数创建。 如果返回的是一个元组,且元组中的元素可以...原创 2018-07-19 13:41:42 · 1358 阅读 · 0 评论 -
python2.7的flask框架之Cookie的使用
我们可以通过 cookies 属性来访问 Cookies,用响应对象的 set_cookie 方法来设置 Cookies,并且我们要知道,请求对象的 cookies 属性是一个内容为客户端提交的所有 Cookies 的字典。完事来看下读取cookie的案例:from flask import request@app.route('/')def index(): userna...原创 2018-07-19 13:50:41 · 695 阅读 · 0 评论 -
python2.7的flask框架之会话(session )的使用
session 对象允许我们在不同请求间存储特定用户的信息,并且它是在 Cookies 的基础上实现的,而且对 Cookies 进行密钥签名。这意味着用户可以查看我们 Cookie 的内容,但却不能修改它,除非用户知道签名的密钥。我们如果要使用会话(session),就需要设置一个密钥。来看下会话(session)是如何工作的:from flask import Flask, sessi...原创 2018-07-19 14:27:07 · 1228 阅读 · 0 评论 -
python2.7的flask框架之消息闪现(flash)的使用
好的应用和用户界面的重点是回馈,但是如果用户没有得到足够的反馈,他们可能最终会对我们的应用产生不好的评价。Flask 提供了一个非常简单的方法来使用闪现系统向用户反馈信息,那就是闪现系统。它使得在一个请求结束的时候记录一个信息,然后在且仅仅在下一个请求中访问这个数据,并且这个功能通常配合一个布局模板实现。这个有点类似与PHP的laravel框架中的session_flash()函数的功能。我们...原创 2018-07-19 14:40:25 · 1376 阅读 · 0 评论 -
python2.7的flask框架之Jinja2模板引擎简单了解下(简介&安装&启用调试支持模块&基本 API 使用案例)
Jinja2 是一个现代的,设计者友好的,仿照 Django 模板的 Python 模板语言,因为它速度快,并且提供了可选的沙箱模板执行环境保证安全,所以被广泛使用。以我们PHP开发者来说,Smarty模板引擎就是我们比较熟悉的了,之后来学习这个Jinja2模板引擎,就会有种宾至如归的感觉。当然,其他开发者如果之前有接触过 Django 模板引擎的话,同样也会有这种感觉。咱们废话不多说哈,先来...原创 2018-07-20 10:48:08 · 651 阅读 · 0 评论 -
python2.7的flask框架之Jinja2简单配置(全局变量&上下文行为&上下文处理器)
我们知道,Flask 使用 Jinja 2 作为模板引擎,我们也可以自由使用其它的模板引擎,但运行 Flask 本身仍然需要 Jinja2 依赖 ,这对启用富扩展是必要的,扩展可以依赖 Jinja2 存在。我们接下来就来看下Jinja2模板引擎的默认配置:所有扩展名为 .html 、 .htm 、 .xml 以及 .xhtml 的模板会开启自动转义 模板可以利用 {% autoescap...原创 2018-07-20 16:34:28 · 846 阅读 · 0 评论 -
python2.7的flask框架之Jinja2简单配置(标准过滤器&注册自己的过滤器)
我们这次来简单看下Jinja2中的标准过滤器,它和注册过滤器一样,是Jinja2自带的过滤器。先来看tojson()函数,它会把给定的对象转换为 JSON 表示,来看个动态生成 JavaScript的实例,不过我们要注意script 标签里的东西不应该被转义,因此如果我们想在 script 标签里使用它, 就得使用 |safe 来禁用转义:<script type=text/jav...原创 2018-07-20 16:43:38 · 400 阅读 · 0 评论 -
python2.7的flask框架之Jinja2简单配置(控制自动转义)
我们知道,自动转义的概念是自动转义特殊字符。例如HTML (或 XML ,因此也有 XHTML )意义下的特殊字符是 & , > , < , " 以及 ' ,但是因为这些字符在文档中表示它们特定的含义,如果我们想在文本中使用它们,就应该把它们替换成相应的“实体”。不这么做不仅会导致用户疲于在文本中使用这些字符,也会导致安全问题。所以,我们有时会需要在模板中禁用自动转义,例如...原创 2018-07-20 16:48:56 · 1127 阅读 · 0 评论 -
简单flask框架的blog项目之项目简介及目录搭建
我们先来介绍下这个项目的功能:允许在用户表中指定用户并且登陆。 当用户登入后,可以向页面添加条目。条目标题是纯文本,正文可以是一些 HTML 。因信任这里的用户,这部分 HTML 不做审查。 页面倒序显示所有条目(后来居上),并且用户登入后可以在此添加新条目。咱们来看下这个项目的最终结果图,首先是未登录的时候: 完事来看下登录界面:还有就是登陆之后的界面: 完事咱...原创 2018-07-23 13:44:25 · 783 阅读 · 0 评论 -
简单flask框架的blog项目之搭建项目雏形及搭建项目雏形及构建数据库和表
通过上篇文章,我们已经简单的建立了我们的项目目录以及文件结构,完事我们这次就来简单的充实它。最起码也得使得它能够正常的启动服务。首先我们在我们的runserver文件中输入如下代码:完事呢,我们再从blog目录下的__init__.py文件中输入如下内容:完事呢,我们就来再我们的项目根目录下,也就是runserver.py文件的同级目录中,来运行 runserver.py 文件...原创 2018-07-23 14:47:16 · 423 阅读 · 0 评论 -
简单flask框架的blog项目之构建项目逻辑代码
通过上篇文章嘞,咱们已经简单的构建起来了数据库。完事呢,咱们就可以来构建咱们的业务逻辑代码了。先不废话,看下源码:如果各位仔细看完上图,肯定会有一个发现。那就是这个简单flask项目的逻辑非常简单,跟咱们PHP的项目逻辑也是没什么太大的差别,但是,它的代码体积以及书写方式要比PHP简单的多。所以,单单从这一点来看,python的优势也是蛮不错的。好啦,废话不多说,大家记得仔细看下代码,...原创 2018-07-23 15:03:16 · 499 阅读 · 0 评论 -
简单flask框架的blog项目之构建 Jinja 2模板
咱们这次来看下上篇文章所提到的三个模板,先来看首页的 Jinja 2模板,也就是layout.html:<!doctype html><title>Flaskr</title><link rel=stylesheet type=text/css href="{{ url_for('static', filename='style.css') }}...原创 2018-07-23 15:14:03 · 241 阅读 · 0 评论 -
python2.7的flask框架之简单配置方式及常见的内置的基础配置值
我们都知道,Flask 对象的 config 属性会有一个可用的配置对象保存着载入的配置值。这是 Flask 自己放置特定配置值的地方,也是扩展可以存储配置值的地方。但是,我们也可以把自己的配置保存到这个对象里。那么,config 实际上继承于字典,并且可以像修改字典一样修改它,我们来简单看下修改这些配置值的一些方式:app = Flask(__name__)app.config['D...原创 2018-07-23 16:08:09 · 560 阅读 · 0 评论 -
python2.7的flask框架之进行简单的应用测试
通过之前的学习嘞,咱们已经构建了一个简单的blog程序。到这个程度嘞,咱们的flask框架的应用算是简单的入了门了。但是有句话说得好啊,没有经过测试的东西都是不完整的。这句话是谁说的,反正我是不知道,虽然它不是完全正确的,但是仍然离真理不远。没有测试过的应用将会使得提高现有代码质量很困难,但是如果一个应用拥有自动化测试,那么我们就可以安全的修改然后立刻知道是否有错误。所以我们就来看下,这个...原创 2018-07-23 17:32:17 · 867 阅读 · 0 评论