1.使用pip安装Python包

大多数Python包都使用pip实用工具安装,使用pyvenv创建的虚拟环境会自动安装pip。

1.使用pip安装Flask(其它Python包同理)

pip install flask

  

2.一个简单的Demo

from flask import Flask
from flask import abort
from flask import redirect app = Flask(__name__) @app.route('/')
def index():
return '<h1>Hello World!</h1>' @app.route('/user/<name>')
def sayHello(name):
if name == 'baidu':
return redirect('http://www.baidu.com')
elif name == 'NO':
return abort(404) return '<h1> Hello,%s </h1>' % name if __name__ == '__main__':
app.run(debug=True)

  

从Demo中学习路由、修饰器、视图函数、请求、响应概念,一步步分析每行代码:

0.from flask import Flask

从flask库中导入Flask函数,from flask import abortfrom flask import redirect同理。

1.app = Flask(__name__)

创建Flask对象app,Flask类的构造函数只有一个必须指定的参数,即程序主模块或包的名字。在大多数程序中,Python的__name__变量就是所需要的值。

2.@app.route('/')

客户端(例如web浏览器)把请求发送给Web服务器,Web服务器再把请求发送给Flask程序实例。程序实例需要知道对每个URL请求运行哪些代码,所以保存了一个URL到Python函数的映射关系。处理URL和函数之间的关系的程序称为路由

在Flask程序中定义路由的最简便方式,是使用程序实例提供的app.route修饰器,把修饰的函数注册为路由。

修饰器是Python语言的标准特性,可以使用不同的方式修改函数的行为。惯常用法是使用修饰器把函数注册为事件的处理程序。

3.def index():函数

index()函数放在@app.route('/')后面,所以就是把index()函数注册为路由。

如果部署程序的服务器域名为www.example.com,在浏览器中访问www.example.com后,会触发服务器执行index()函数。

4.@app.route('/user/<name>')

@app.route('/'),如果部署程序的服务器域名为www.example.com,在浏览器中访问www.example.com/user/tom后,会触发服务器执行下方修饰函数sayHello(name)

5.sayHello(name)函数

if name == 'baidu':
return redirect('http://www.baidu.com')
elif name == 'NO':
return abort(404) return '<h1> Hello,%s </h1>' % name

假定部署程序的服务器域名为www.example.com

在浏览器中访问www.example.com/user/baidu,那么redirect()函数就直接链接到百度了。

注意的是,在使用redirect()函数之前,必须使用from flask import redirect从flask库中导入redirect()函数。

在浏览器中访问www.example.com/user/NO,那么abort()函数就会触发。

abort()函数用于处理错误,abort(404)返回404错误,abort()函数不会把控制权交还给调用它的函数,而是抛出异常把控制权交给Web服务器。

在浏览器中访问www.example.com/user/tom,那么会正确执行,在浏览器中显示Hello,tom

6.if __name__ == '__main__':

一开始也没弄懂,这句话是什么意思。在StackOverflow中找到了答案。

大致翻一下:

当Python解释器,读py文件,它会执行它发现的所有代码。在执行代码之前,它会定义一些变量。例如,如果这个py文件就是主程序,它会设置__name__变量为"__main__"。如果这个py被引入到别的模块,__name__会被设置为该模块的名字。

举个栗子:
创建一个test.py文件:

if __name__ == '__main__':
print '自己主动执行'
else:
print '我被别的模块引入'

执行下$ python test.py会输出自己主动执行
直接在命令行中输入python随后输入import test,会输出:我被别的模块引入

7.app.run(debug=True)

程序实例用run方法启动Flask继承的开发Web服务器。

服务器启动后,会进入轮询,等待并处理请求。轮询会一直进行,直到程序停止,比如按Ctrl-C键。

debug=True表示启用调试模式。方便我们调试。


作者:iYiming
链接:http://www.jianshu.com/p/303057e51417
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

初识python轻量web框架flask的更多相关文章

  1. Python轻量Web框架Flask使用

    http://blog.csdn.net/jacman/article/details/49098819 目录(?)[+] Flask安装 Python开发工具EclipsePyDev准备 Flask ...

  2. Python超级明星WEB框架Flask

    Flask简介 Flask是一个相对于Django而言轻量级的Web框架. 和Django大包大揽不同,Flask建立于一系列的开源软件包之上,这其中 最主要的是WSGI应用开发库Werkzeug和模 ...

  3. Python学习之web框架 Flask

    一.通过PIP 安装Flask 1.1 Windows环境安装pip A.首先PIP进入官网(https://pypi.python.org/pypi/pip)下载gz包 B.对gz压缩包进行解压,解 ...

  4. golang 实现轻量web框架

    经常看到很多同学在打算使用go做开发的时候会问用什么http框架比较好.其实go的 http package 非常强大,对于一般的 http rest api 开发,完全可以不用框架就可以实现想要的功 ...

  5. 用Python手把手教你搭建一个web框架-flask微框架!

    在之前的文章当中,小编已经教过大家怎么搭建一个Django框架,今天我们来探索另外的一种框架的搭建,这个框架就是web框架-flask微框架啦!首先我们带着以下的几个问题来阅读本文: 1.flask是 ...

  6. python web框架Flask——csrf攻击

    CSRF是什么? (Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一,也被称为“One Click ...

  7. Web框架之Django_01初识(三大主流web框架、Django安装、Django项目创建方式及其相关配置、Django基础三件套:HttpResponse、render、redirect)

    摘要: Web框架概述 Django简介 Django项目创建 Django基础必备三件套(HttpResponse.render.redirect) 一.Web框架概述: Python三大主流Web ...

  8. 动手打造轻量web服务器(二)路由

    tomcat启动慢?自己动手打造轻量web服务器(一) 上篇讲了怎么做一个最简单的web服务器,这篇就是在上篇加上URL路由功能(什么是路由?) 首先,根据http获得请求行 val scanner ...

  9. python三大主流web框架之Django安装、项目搭建

    这一篇我们将迎来python强大的web框架Django,相信大家都已经不陌生,本篇将介绍Django的安装及基础项目搭建,大神略过~ Django是需要我们手动pip安装的,首先我们来安装Djang ...

随机推荐

  1. Java 大数(整数+浮点数) 基本函数

    import java.math.BigDecimal; import java.math.BigInteger; import java.util.*; public class Main { pu ...

  2. TopCoder SRM 675 Div1 Problem 500 LimitedMemorySeries1(分块)

    题意  给定一个长度不超过$5*10^{6}$的数列和不超过$100$个询问,每次询问这个数列第$k$小的数,返回所有询问的和 内存限制很小,小到不能存下这个数列.(数列以种子的形式给出) 时限$10 ...

  3. popcount 算法分析

    转载: http://blog.csdn.net/gaochao1900/article/details/5646211 http://www.cnblogs.com/Martinium/archiv ...

  4. 如何在window上把你的项目提交到github

    1.首先你需要在https://github.com/ 上注册一个账户 2.注册成功以后,你需要新建一个repository(储藏室),这个用来存放你要上传的项目 点击中间的带加号的图标就可以新建re ...

  5. How To Commit Just One Data Block Changes In Oracle Forms

    You have an Oracle Form in which you have multiple data blocks and requirement is to commit just one ...

  6. 【spring boot】6.idea下springboot打包成jar包和war包,并且可以在外部tomcat下运行访问到

    接着上一章走呗:http://www.cnblogs.com/sxdcgaq8080/p/7712874.html 然后声明一点,下面打包的过程中,scope一直都是使用默认的范围 <!--用于 ...

  7. arcgis10安装及破解

    操作系统:win7    arcgis版本:10.0 1.运行arcgis10安装包里的esri.exe,出现以下安装界面.先点“许可管理器”的“安装”,一路点下去,什么都不用管. 2.完成后在lic ...

  8. 传输层:TCP 协议

    传输层:TCP 协议 一.概述 TCP 和 UDP 处在同一层——运输层,但是它们有很多的不同.TCP 是 TCP/IP 系列协议中最复杂的部分,它具有以下特点: (1) TCP 提供 可靠的 数据传 ...

  9. Linux下的定时任务Crontab

    通过crontab -e写入定时任务的指令,一行为一项任务. 任务模式是时间克龙表达式+命令形式. 如: 2 0,6,12,18 * * * perl /root/restarttomcat.pl p ...

  10. js 淘宝评分

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...