Python Flask Web 第一课 —— 基本概念和程序的基本结构

原创 2016年06月02日 12:35:03

1. 初始化

所有的 Flask 程序都必须创建一个程序实例,所谓程序实例,在 Flask 框架下就是,Flask 类的实例对象(instance)。

from flask import Flask
app = Flask(__name__)

Web 服务器使用一种名为 Web 服务器网关接口(Web Server Gateway Interface,WSGI)的协议,把接收自客户端(client)的所有请求(request)都转交给这个对象处理。

2. 路由与视图函数


这里写图片描述

客户端(例如 web 浏览器)把请求发送给 web 服务器,web 服务器再把请求发送给 flask 程序实例。

程序实例需要知道对每个 url 请求运行哪些代码,所以需要保存一个 URL 与 Python 函数之间的映射关系。处理 URL 和函数之间的关系的程序成为路由

@app.route('/')
def index():
    return '<h1>Hello World!</h1>'

而像 index() 这样的函数被称为视图函数(view function),视图函数返回的响应可以是包含 HTML 的简单字符串,也可以是复杂的表单。

如果仔细观察日常所用服务的某些 url 格式,会发现许多地址中都包含可变部分。例如 csdn 上的个人博客地址,http://blog.csdn.net/<用户名>,用户名是地址的一部分。

Flask 也支持这种形式的 URL,

@app.route('/user/<name>')
def user(name):
    return '<h1>Hello, %s</h1>' % name

尖括号中的内容就是动态可变部分,任何能匹配静态部分的 URL 都会映射到这个路由上,调用视图函数时,Flask 会将动态部分作为参数传入函数(注意, 尖括号中的内容必须和函数的参数名保持一致)。

路由中的动态部分默认使用字符串,不过也可以使用其他类型定义。Flask 支持在路由中使用 int、float 和 path 类型。path 类型也是字符串,但不把斜线视作分隔符,而将其当做动态片段的一部分。

3. 启动服务器

程序实例app使用 run 方法启动 Flask 集成的开发 Web 服务器:

if __name__ == '__main__':
    app.run(debug=True)

服务器启动后,会进入轮询,等待并处理请求,直到程序停止,比如按下 ctrl + c 键。换句话说,程序会阻塞在这里app.run()后面的语句不会被执行。

版权声明:本文为博主原创文章,未经博主允许不得转载。

[python3.6 flask web学习]Flask项目目录结构

一个良好的项目结构目录可以清晰的看出来各个模块的作用,方便扩展,易于修改。虽然Flask并没有强制要求开发者项目的目录层次结构应该是怎么样的,但是如果我们以包和模块的形式组织项目的话,后期的开发会非常...
  • xingyunLOST
  • xingyunLOST
  • 2017年08月14日 10:13
  • 2381

Flask Web项目架构图

  • westenboy
  • westenboy
  • 2016年01月24日 16:49
  • 3119

Flask Web 开发学习稿(一)

好久没有更新过了,把这些日子搞的东西先放一波出来 这个学习笔记未必会包含全部章节,有时会将两个章节进行合并第一章 安装1.1 使用虚拟环境虚拟环境是 Python 解释器的一个私有副本,可以安装私有...
  • tan6600
  • tan6600
  • 2016年05月31日 12:38
  • 8902

Flask基本结构(一)

1。初始化 创建一个程序实例来初始化,该程序实例是Flask类的对象。 from flask import Flask ap...
  • slamx
  • slamx
  • 2015年10月16日 20:27
  • 1197

flask-项目结构

项目结构【多文件 Flask 程序的基本结构】4 个顶级文件夹: - app 目录包含Flask 程序; - migrations 文件夹包含数据库迁移脚本 - tests 目录包含测试代...
  • Dimples_54
  • Dimples_54
  • 2017年08月31日 00:16
  • 1044

Flask代码结构总结

1.     代码结构 1.1 最简单的(没有数据库) `-- app    |-- static        #用来放CSS,js之类的文件 `-- templates     #用来放HTML格...
  • u014102846
  • u014102846
  • 2017年07月11日 15:51
  • 380

flask源码笔记:二,Flask源码目录结构

在目录下执行ls命令可以了解到,Flask源码目录的大致结构,如果需要以树状显示目录结构,可以使用命令tree。 (venv)[root@10-9-21-98 flask]# ls app...
  • u013485123
  • u013485123
  • 2016年03月02日 18:38
  • 2330

Python Flask Web 第一课 —— 基本概念和程序的基本结构

1. 初始化所有的 Flask 程序都必须创建一个程序实例,所谓程序实例,在 Flask 框架下就是,Flask 类的实例对象(instance)。 from flask import Flask a...
  • lanchunhui
  • lanchunhui
  • 2016年06月02日 12:35
  • 953

Flask程序的基本结构

Flask程序的基本结构@(Flask)初始化程序实例是Flask类的对象。常常用的代码是:from flask import Flask app = Flask(__name__)Flask类的构造...
  • u011240016
  • u011240016
  • 2017年04月28日 10:56
  • 920

《Flask development》大型程序的结构

版本库(Repository):你的应用的根目录。这个概念来自于版本控制系统,但在这里有所拓展。当提到“版本库”时,指的是你的项目的根目录。在开发你的应用时,你不太可能会离开这个目录。 包(...
  • huang5487378
  • huang5487378
  • 2017年03月27日 14:14
  • 918
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Python Flask Web 第一课 —— 基本概念和程序的基本结构
举报原因:
原因补充:

(最多只允许输入30个字)