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()后面的语句不会被执行。

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

相关文章推荐

OC基本概念

oc总结 –oc基础语法相关知识 m是OC源文件扩展名,入口点也是main函数,第一个OC程序:import //Student.h #import @interface Student : NS...

Oracle表空间、段、区、块的简述

查看( 4846 ) / 评论( 22 ) / 评分( 98 / 5 ) 在Oracle学习过程中,存储结构,表段区块可能是每个初学者都要涉及到的概念。表空间、段、分区和数据块分别表示了Oracle...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

【k8s系列01】基本概念

基本概念Kubernetes简称k8s,是google开源的容器编排和调度技术,其核心思想源于google内部的Borg系统。本文主要研究k8s的基本框架、核心概念、基本例子等

数据结构一:数据结构概论(第一周)

今天正式开始学习数据结构

db_name,instance_name,service_names,db_domain,dbid,oracle_sid等区别与联系

db_name,instance_name,service_names,db_domain,dbid,oracle_sid等区别与联系 最近整理了一篇文章:oracle listener...

Linux系统分区和挂载浅谈

一 Linux的安装  Linux的安装是比较简单的,整个过程和安装XP差不多。首先BIOS中设置从光驱启动,(不知道怎么设置?那你还是先装虚拟机玩玩吧!)会要你选安装模式,直接回车用图形界面;然后...

五大常用算法——分治法,动态规划,回溯法,分支界限法,贪心算法

分治算法 一、基本概念    在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最...

消息系统该Push/Pull模式分析

消息系统该Push/Pull模式分析    出处信息     信息推拉技术简介     “智能信息推拉(IIPP)技术”是在网上信息获取技术中加入了智能成份,从而有助于...

Flask Web开发 第一部分 virtualenv & 第2章 Flask程序的基本结构

1. virtualenvpip install virtualenv创建windows系统下的 Python 虚拟环境 这个命令只有一个必需的参数,即虚拟环境的名字。创建虚拟环境后,当前文件夹中会...

C++/C程序的基本概念(0)

C++/C程序的基本概念启动函数main()C++/C程序的可执行部分都是由函数组成的,main()函数就是所有程序中都应该提供的一个默认全局函数-主函数,所有的C++/C程序都应该从函数main()...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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