flask框架0基础使用全知识点集合,共4大部分,近60页,MD文档 第(1)期

举报
程序员一诺112 发表于 2023/10/29 17:58:46 2023/10/29
【摘要】 本文的主要内容:flask视图&路由、虚拟环境安装、路由各种定义、状态保持、cookie、session、模板基本使用、过滤器&自定义过滤器、模板代码复用:宏、继承/包含、模板中特有变量和函数、Flask-WTF 表单、CSRF、数据库操作、ORM、Flask-SQLAlchemy、增删改查操作、案例、蓝图、单元测试

本文的主要内容:flask视图&路由、虚拟环境安装、路由各种定义、状态保持、cookie、session、模板基本使用、过滤器&自定义过滤器、模板代码复用:宏、继承/包含、模板中特有变量和函数、Flask-WTF 表单、CSRF、数据库操作、ORM、Flask-SQLAlchemy、增删改查操作、案例、蓝图、单元测试


完整版笔记直接地址: 请移步这里



共 4 章,42 子模块,总计 29211 字





Flask框架



本文主要内容


  • 视图&路由

    • Flask 简介

    • 虚拟环境安装

    • 路由各种定义

  • 状态保持

    • cookie

    • session

  • 模板

    • 基本使用

    • 过滤器&自定义过滤器

    • 模板代码复用:宏/继承/包含

    • 模板中特有变量和函数

    • Flask-WTF 表单

  • CSRF

  • 数据库操作

    • ORM

    • Flask-SQLAlchemy

    • 增删改查操作

    • 案例

  • 蓝图

  • 单元测试


学习时长


  • 4天


视图及路由


  • Flask简介

  • 虚拟环境

  • 路由的各种定义方式

  • 正则路由转换器

  • 请求参数

  • 状态保持

  • 上下文

  • Flask-Script


学习目标


  • 能够根据课件步骤安装虚拟环境

  • 能够创建 Py2 和 Py3 版本的虚拟环境

  • 能够使用 pip 命令安装指定版本 Flask 及其他扩展

  • 能够写出 Flask 从对象中加载配置的代码

  • 能够说出url_for的作用

  • 能够写出带有参数的路由及视图函数

  • 能够说出自定义转换器的步骤

  • 能够说出装饰器路由实现的几个关键的类

  • 能够说出实现 HTTP 状态保持的原理

  • 能够说出 Flask 各个上下文对象

  • 能够说出 Flask-Script 扩展的作用


Flask简介


Web应用程序的本质


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


Web框架


  • 什么是Web框架?

    • 协助开发者快速开发 Web 应用程序的一套功能代码

    • 开发者只需要按照框架约定要求,在指定位置写上自己的业务逻辑代码

    • 例如:在某个区需要成立一家医院,有两种方式:

      1. 圈地,打地基,盖楼,装修,入驻

      2. 买楼,装修,入驻

  • 为什么要用Web框架?

web网站发展至今,特别是服务器端,涉及到的知识、内容,非常广泛。这对程序员的要求会越来越高。如果采用成熟,稳健的框架,那么一些基础的工作,比如,安全性,数据流控制等都可以让框架来处理,那么程序开发人员可以把精力放在具体的业务逻辑上面。使用框架的优点:

  • 稳定性和可扩展性强

  • 可以降低开发难度,提高开发效率。

总结一句话: 避 免重复造轮子

  • 在 Python 中常用的 Web 框架有

    • flask

    • django

    • tornado


Flask


Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架。

Flask 本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login,数据库Flask- SQLAlchemy),都需要用第三方的扩展来实现。比如可以用 Flask 扩展加入ORM、窗体验证工具,文件上传、身份验证等。Flask 没有默认使用的数据库,你可以选择 MySQL,也可以用 NoSQL。

其 WSGI 工具箱采用 Werkzeug(路由模块),模板引擎则使用 Jinja2。这两个也是 Flask 框架的核心。

Flask 常用扩展包:

  • Flask-SQLalchemy:操作数据库;

  • Flask-script:插入脚本;

  • Flask-migrate:管理迁移数据库;

  • Flask-Session:Session存储方式指定;

  • Flask-WTF:表单;

  • Flask-Mail:邮件;

  • Flask-Bable:提供国际化和本地化支持,翻译;

  • Flask-Login:认证用户状态;

  • Flask-OpenID:认证;

  • Flask-RESTful:开发REST API的工具;

  • Flask-Bootstrap:集成前端Twitter Bootstrap框架;

  • Flask-Moment:本地化日期和时间;

  • Flask-Admin:简单而可扩展的管理接口的框架


虚拟环境



为什么要搭建虚拟环境?


  • 在开发过程中, 当需要使用python的某些工具包/框架时需要联网安装

    • 比如联网安装Flask框架flask-0.10.1版本


    sudo pip install flask==0.10.1

  • 提 示:使用如上命令, 会将flask-0.10.1安装到/usr/local/lib/python2.7/dist-packages路径下

  • 问 题:如果在一台电脑上, 想开发多个不同的项目, 需要用到同一个包的不同版本, 如果使用上面的命令, 在同一个目录下安装或者更新, 新版本会覆盖以前的版本, 其它的项目就无法运行了.

  • 解 决方案 : 虚拟环境

    • 作 用 : 虚拟环境可以搭建独立的python运行环境, 使得单个项目的运行环境与其它项目互不影响.

    • 所有的虚拟环境都位于/home/下的隐藏目录.virtualenvs


如何搭建虚拟环境?


  • 安装虚拟环境的命令 :


    sudo pip install virtualenv sudo pip install virtualenvwrapper

安装完虚拟环境后,如果提示找不到mkvirtualenv命令,须配置环境变量:


# 1、创建目录用来存放虚拟环境


mkdir 
$HOME/.virtualenvs


# 2、打开~/.bashrc文件,并添加如下:


export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh


# 3、运行


source ~/.bashrc
  • 创建虚拟环境的命令 :

    • 提示:如果不指定python版本,默认安装的是python2的虚拟环境

    • 在python2中,创建虚拟环境

      mkvirtualenv 虚拟环境名称

      例 : mkvirtualenv py_flask

    • 在python3中,创建虚拟环境

      mkvirtualenv -p python3 虚拟环境名称

      例 : mkvirtualenv -p python3 py3_flask

  • 提示 :

    • 创建虚拟环境需要联网

    • 创建成功后, 会自动工作在这个虚拟环境上

    • 工作在虚拟环境上, 提示符最前面会出现 "虚拟环境名称"


如何使用虚拟环境?


  • 查看虚拟环境的命令 :


    workon 两次tab键

  • 使用虚拟环境的命令 :


    workon 虚拟环境名称

    例 :使用python2的虚拟环境 workon py_flask

    例 :使用python3的虚拟环境 workon py3_flask

  • 退出虚拟环境的命令 :


    deactivate

  • 删除虚拟环境的命令 :


    rmvirtualenv 虚拟环境名称

    例 :删除虚拟环境py3_flask

    先退出:deactivate 再删除:rmvirtualenv py3_flask


如何在虚拟环境中安装工具包?


  • 提示 : 工具包安装的位置 :

    • python2版本下:

      • ~/.virtualenvs/py_flask/lib/python2.7/site-packages/

    • python3版本下:

      • ~/.virtualenvs/py3_flask/lib/python3.5/site-packages

  • python3版本下安装flask-0.10.1的包 :


    pip install 包名称

    例 : 安装flask-0.10.1的包 pip install flask==0.10.1

  • 查看虚拟环境中安装的包 :


    pip freeze


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 将装饰器路由和视图的对应关系保存起来,打印结果如下图:


未完待续 下一期下一章


完整笔记请看文章开头

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。