关于python:史上flask框架最全知识点集合共4大部分近60页MD文档

3次阅读

共计 3111 个字符,预计需要花费 8 分钟才能阅读完成。

史上 flask 框架最全知识点汇合,共 4 大部分,近 60 页,MD 文档

学些了 Flask 这么久,收集了好多好多的学习材料,而后整顿成 md 文档筹备随时应用,切实是太爽了。

学习笔记共 4 大部分,近 60 页,从 0 到我的项目一步步手把手教程。

想要的小伙伴间接去这获取:

https://zhuanlan.zhihu.com/p/…

笔记目录:

1 笔记内容

Flask 简介

Web 应用程序的实质

Web(World Wide Web)诞生最后的目标,是为了利用互联网交换工作文档。

Web 框架

  • 什么是 Web 框架?

    • 帮助开发者疾速开发 Web 应用程序的一套性能代码
    • 开发者只须要依照框架约定要求,在指定地位写上本人的业务逻辑代码
    • 例如:在某个区须要成立一家医院,有两种形式:

      1. 圈地,打地基,盖楼,装修,入驻
      2. 买楼,装修,入驻
  • 为什么要用 Web 框架?

web 网站倒退至今,特地是服务器端,波及到的常识、内容,十分宽泛。这对程序员的要求会越来越高。如果采纳成熟,持重的框架,那么一些根底的工作,比方,安全性,数据流管制等都能够让框架来解决,那么程序开发人员能够把精力放在具体的业务逻辑下面。应用框架的长处:

  • 稳定性和可扩展性强
  • 能够升高开发难度,进步开发效率。

HelloWorld 程序

创立 Python 我的项目

  • 关上 Pycharm,创立 Pure Python 类型的我的项目,创立我的项目实现之后抉择之前创立的 py3_flask 作为虚拟环境

第 4 步门路能够通过在指定虚拟环境下,输出 which python 取得

示例:

  • 新建文件 helloworld.py
  • 导入 Flask 类
from flask import Flask

Flask 函数接管一个参数__name__,它会指向程序所在的包

app = Flask(__name__)
  • 装璜器的作用是将路由映射到视图函数 index
@app.route('/')
def index():
    return 'Hello World'
  • Flask 应用程序实例的 run 办法 启动 WEB 服务器
if __name__ == '__main__':
    app.run()
  • 在程序运行过程中,程序实例中会应用 url_map 将装璜器路由和视图的对应关系保存起来,打印后果如下图:

路由根本定义

  • 明确路由定义的参数,申请形式指定
  • PostMan 的应用

指定路由地址

# 指定拜访门路为 demo1
@app.route('/demo1')
def demo1():
    return 'demo1'

给路由传参示例

有时咱们须要将同一类 URL 映射到同一个视图函数解决,比方:应用同一个视图函数来显示不同用户的个人信息。

# 路由传递参数
@app.route('/user/<user_id>')
def user_info(user_id):
    return 'hello %s' % user_id
  • 路由传递的参数默认当做 string 解决,也能够指定参数的类型
# 路由传递参数
@app.route('/user/<int:user_id>')
def user_info(user_id):
    return 'hello %d' % user_id

这里指定 int,尖括号中的内容是动静的,在此临时能够了解为承受 int 类型的值,实际上 int 代表应用 IntegerConverter 去解决 url 传入的参数

指定申请形式

装璜器路由具体实现梳理

Flask 有两大外围:Werkzeug 和 Jinja2

- Werkzeug 实现路由、调试和 Web 服务器网关接口
- Jinja2 实现了模板。

Werkzeug 是一个遵循 WSGI 协定的 python 函数库

- 其外部实现了很多 Web 框架底层的货色,比方 request 和 response 对象;- 与 WSGI 标准的兼容;反对 Unicode;- 反对根本的会话治理和签名 Cookie;- 集成 URL 申请路由等。

Werkzeug 库的 routing 模块负责实现 URL 解析。不同的 URL 对应不同的视图函数,routing 模块会对申请信息的 URL 进行解析,匹配到 URL 对应的视图函数,执行该函数以此生成一个响应信息。

routing 模块外部有:

  • Rule 类

    • 用来结构不同的 URL 模式的对象,路由 URL 规定
  • Map 类

    • 存储所有的 URL 规定和一些配置参数
  • BaseConverter 的子类

    • 负责定义匹配规定
  • MapAdapter 类

    • 负责协调 Rule 做具体的匹配的工作

Flask-SQLAlchemy 装置及设置

  • SQLALchemy 实际上是对数据库的形象,让开发者不必间接和 SQL 语句打交道,而是通过 Python 对象来操作数据库,在舍弃一些性能开销的同时,换来的是开发效率的较大晋升
  • SQLAlchemy 是一个关系型数据库框架,它提供了高层的 ORM 和底层的原生数据库的操作。flask-sqlalchemy 是一个简化了 SQLAlchemy 操作的 flask 扩大。
  • 文档地址:http://docs.jinkan.org/docs/f…

装置

  • 装置 flask-sqlalchemy
pip install flask-sqlalchemy
  • 如果连贯的是 mysql 数据库,须要装置 mysqldb
pip install flask-mysqldb

数据库连贯设置

  • 在 Flask-SQLAlchemy 中,数据库应用 URL 指定,而且程序应用的数据库必须保留到 Flask 配置对象的 SQLALCHEMY_DATABASE_URI 键中
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:mysql@127.0.0.1:3306/test'
  • 其余设置:
# 动静追踪批改设置,如未设置只会提醒正告
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
#查问时会显示原始 SQL 语句
app.config['SQLALCHEMY_ECHO'] = True
  • 配置实现须要去 MySQL 中创立我的项目所应用的数据库
$ mysql -uroot -pmysql
$ create database test charset utf8;
  • 其余配置
名字 备注
SQLALCHEMY_DATABASE_URI 用于连贯的数据库 URI。例如:sqlite:////tmp/test.dbmysql://username:password@server/db
SQLALCHEMY_BINDS 一个映射 binds 到连贯 URI 的字典。更多 binds 的信息见 用 Binds 操作多个数据库
SQLALCHEMY_ECHO 如果设置为 Ture,SQLAlchemy 会记录所有 发给 stderr 的语句,这对调试有用。(打印 sql 语句)
SQLALCHEMY_RECORD_QUERIES 能够用于显式地禁用或启用查问记录。查问记录 在调试或测试模式主动启用。更多信息见 get_debug_queries()。
SQLALCHEMY_NATIVE_UNICODE 能够用于显式禁用原生 unicode 反对。当应用 不适合的指定无编码的数据库默认值时,这对于 一些数据库适配器是必须的(比方 Ubuntu 上 某些版本的 PostgreSQL)。
SQLALCHEMY_POOL_SIZE 数据库连接池的大小。默认是引擎默认值(通常 是 5)
SQLALCHEMY_POOL_TIMEOUT 设定连接池的连贯超时工夫。默认是 10。
SQLALCHEMY_POOL_RECYCLE 多少秒后主动回收连贯。这对 MySQL 是必要的,它默认移除闲置多于 8 小时的连贯。留神如果 应用了 MySQL,Flask-SQLALchemy 主动设定 这个

上述内容常识从外面摘出一部分,这个笔记在我的博客外面

https://zhuanlan.zhihu.com/p/…

本文由博客一文多发平台 OpenWrite 公布!

正文完
 0