当前位置: 首页 > article >正文

Flask Web开发实验一:第一个Flask项目与Flask的工作方式

目录

2.1 初始化

2.2 路由和视图函数

2.3 启动服务器

 2.4 一个完整的程序,

示例 2-1 hello.py:一个完整的 Flask 程序

 示例 2-2 hello.py:包含动态路由的 Flask 程序

2.5.1 程序和请求上下文

2.5.2 请求调度

2.5.3 请求钩子

2.5.4 响应

2.6 Flask扩展


2.1 初始化

所有 Flask 程序都必须创建一个 程序实例 Web 服务器使用一种名为 Web 服务器网关接口
Web Server Gateway Interface WSGI )的协议,把接收自客户端的所有请求都转交给这
个对象处理。程序实例是 Flask 类的对象,经常使用下述代码创建:
from flask import Flask
app = Flask(__name__)
Flask 类的构造函数只有一个必须指定的参数,即程序主模块或包的名字。在大多数程序
中, Python __name__ 变量就是所需的值

2.2 路由和视图函数

客户端(例如 Web 浏览器)把 请求 发送给 Web 服务器, Web 服务器再把请求发送给 Flask
程序实例。程序实例需要知道对每个 URL 请求运行哪些代码,所以保存了一个 URL
Python 函数的映射关系。处理 URL 和函数之间关系的程序称为 路由
Flask 程序中定义路由的最简便方式,是使用程序实例提供的 app.route 修饰器,把修
饰的函数注册为路由。下面的例子说明了如何使用这个修饰器声明路由:
@app.route('/')
def index():
return '<h1>Hello World!</h1>'
如果你仔细观察日常所用服务的某些 URL 格式,会发现很多地址中都包含可变部分。例
如, 你 的 Facebook 资 料 页 面 的 地 址 是 http://www.facebook.com/< your-name > , 用 户 名
your-name )是地址的一部分。 Flask 支持这种形式的 URL ,只需在 route 修饰器中使用特
殊的句法即可。下例定义的路由中就有一部分是动态名字
@app.route('/user/<name>')
def user(name):
return '<h1>Hello, % s!</h1>' % name
       尖括号中的内容就是动态部分,任何能匹配静态部分的 URL 都会映射到这个路由上。调
用视图函数时, Flask 会将动态部分作为参数传入函数。在这个视图函数中,参数用于生
成针对个人的欢迎消息。
       路由中的动态部分默认使用字符串,不过也可使用类型定义。例如,路由 /user/<int:id>
只会匹配动态片段 id 为整数的 URL Flask 支持在路由中使用 int float path 类型。
path 类型也是字符串,但不把斜线视作分隔符,而将其当作动态片段的一部分。

2.3 启动服务器

程序实例用 run 方法启动 Flask 集成的开发 Web 服务器:
if __name__ == '__main__':
app.run(debug=True)
__name__== ' __main__ ' Python 的惯常用法,在这里确保直接执行这个脚本时才启动开发
Web 服务器。如果这个脚本由其他脚本引入,程序假定父级脚本会启动不同的服务器,因
此不会执行 app.run()
       服务器启动后,会

http://www.kler.cn/a/148205.html

相关文章:

  • Nuxt.js 应用中的 schema:beforeWrite 事件钩子详解
  • ARM架构中断与异常向量表机制解析
  • 前端,location.reload刷新页面
  • WEB攻防-通用漏洞SQL注入sqlmapOracleMongodbDB2等
  • STM32问题集
  • LeetCode 86.分隔链表
  • 2021年12月 Scratch图形化(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • 用苹果签名免费获取Xcode
  • [Spring] 字节一面~Spring 如何解决循环依赖问题 以及 @resource 与 @autowire 同时存在时谁生效
  • ES8语法async与await
  • xxljob学习笔记01(小滴课堂)
  • Kotlin中常见的List使用
  • Vue简单的表单操作
  • php.ini文件中XDebug的配置
  • python回溯求解电话号码组合
  • PHP 双门双向门禁控制板实时监控源码
  • mysql命令行连接数据库
  • 【数据结构】C : 追星
  • 进入docker容器
  • 【Web】PHP反序列化刷题记录
  • React入门使用 (官方文档向 Part1)
  • 体验一下压行的快乐~
  • python的itertools库
  • react的开发中关于图片的知识
  • [CLickhouse] 学习小计
  • 人工智能应用:文本分类的技术突破与实战指导