首页 > 其他分享 >Flask 学习-1.简介与环境准备

Flask 学习-1.简介与环境准备

时间:2022-09-22 14:22:09浏览次数:73  
标签:__ 框架 Flask 简介 app 学习 flask hello

前言

Flask是由python开发的轻量的web框架,小巧,灵活,一个脚本就可以启动一个web项目,上手非常容易。
Flask 和 Django 框架对比

  • Django: 大而全,有一套完整的框架,但是耦合性高。Auth,Permission,admin基本没用,开发快,符合 MVC 模式
  • Flask: 微框架,小巧灵活。一个脚本就可以启动一个web项目,需要哪些功能,自己装。需要熟悉MVC模式

Flask 框架简介

Flask是由 python 开发的轻量的web 微框架,“微”并不代表整个应用只能塞在一个 Python 文件内,当然塞在单一文件内也 没有问题。
“微”也不代表 Flask 功能不强。微框架中的“微”字表示 Flask 的目标是保持核心简单而又可扩展。
Flask 不会替你做出许多决定,比如选用何 种数据库。类似的决定,如使用何种模板引擎,是非常容易改变的。 Flask 可以 变成你任何想要的东西,一切恰到好处,由你做主。

 

 

 官网教程地址https://dormousehole.readthedocs.io/en/latest/index.html

环境准备

Flask 支持 Python 3.7 以上版本。本教程系列使用python3.8 的版本为示例。

使用pycharm 新增项目 File-New Project ,创建一个虚拟环境

 

 

 

打开Terminal 终端,使用pip 安装flask

 

 

 

目前Flask 最新版本的v2.2.2

安装完成后会自动安装几个依赖包

 

 

 

当安装 Flask 时,以下配套软件会被自动安装。

  • Werkzeug 用于实现 WSGI ,应用和服务之间的标准 Python 接口。
  • Jinja 用于渲染页面的模板语言。
  • MarkupSafe 与 Jinja 共用,在渲染页面时用于避免不可信的输入,防止注入攻击。
  • ItsDangerous 保证数据完整性的安全标志数据,用于保护 Flask 的 session cookie.
  • Click 是一个命令行应用的框架。用于提供 flask 命令,并允许添加自定义 管理命令。

快速开始

先写一个最简单的“hello world”程序开始

from flask import Flask

app = Flask(__name__)


@app.route("/")
def hello_world():
return "<p>Hello, World!</p>"

 

那么,这些代码是什么意思呢?

  • 首先我们导入了 Flask 类。该类的实例将会成为我们的 WSGI 应用。
  • 接着我们创建一个该类的实例。第一个参数是应用模块或者包的名称。__name__是一个适用于大多数情况的快捷方式。有了这个参数, Flask 才能知道在哪里可以找到模板和静态文件等东西。
  • 然后我们使用 route() 装饰器来告诉 Flask 触发函数 的 URL 。
  • 函数返回需要在用户浏览器中显示的信息。默认的内容类型是 HTML ,因此字 符串中的 HTML 会被浏览器渲染。

把它保存为 hello.py 或其他类似名称。请不要使用 flask.py 作为应用名称,这会与 Flask 本身发生冲突。

运行 Flask 服务

可以使用 flask 命令或者 python 的 -m 开关来运行这个应 用。在运行应用之前,需要在终端里导出 FLASK_APP 环境变量:

 

 

作为一个捷径,如果文件名为 app.py 或者 wsgi.py ,那么您不 需要设置 FLASK_APP 环境变量。详见 命令行接口https://dormousehole.readthedocs.io/en/latest/cli.html 。

这样就启动了一个非常简单的内建的服务器。这个服务器用于测试应该是足够了, 但是用于生产可能是不够的。
启动后看到有个WARNING警告:仅用于开发环境的启动服务,生成环境部署需用的WSGI 服务

(venv) D:\demo\xuexi_flask>flask run
* Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI s
erver instead.
* Running on http://127.0.0.1:5000
Press CTRL+C to quit

 启动后,浏览器输入:http://127.0.0.1:5000 就可以看到页面内容“hello world”

 

 在一些老的教程中会看到在代码中加app.run() ,运行当前脚本也可以启动服务

from flask import Flask

app = Flask(__name__)

@app.route("/")

def hello_world():

  return "<p>Hello, World!</p>"

if __name__ == '__main__':

app.run()

标签:__,框架,Flask,简介,app,学习,flask,hello
From: https://www.cnblogs.com/mingZ666/p/16719102.html

相关文章

  • java学习笔记25
    java数组数组的定义数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据按照一定的先后次序排列组合而成。其中,每一个数据称作一个数组元素,每个数组元素......
  • java学习笔记26
    java数组数组的使用普通的for循环publicclassDemo03{  publicstaticvoidmain(String[]args){    int[]arrays={1,2,3,4,5};    //打印......
  • 使用 BigQuery ML 的自动化机器学习 (AutoML)。轻松启动机器学习并验证 ML 是否值得投
    使用BigQueryML的自动化机器学习(AutoML)。轻松启动机器学习并验证ML是否值得投资。机器学习在许多行业中变得越来越流行,从金融到营销再到医疗保健。但让我们面对......
  • 学习Java Day1
    Markdown学习Day1笔记划线层级标题+空格井号的多少表示层级的大小字体粗体为文字前后输入各两个“星号”——**斜体为文字前后输入各一个“星号”——*斜体......
  • 无旋树堆(FHQ-Treap)学习笔记
    简介无旋树堆(一般统称\(\text{FHQ-Treap}\)),是一种平衡树。可以用很少的代码达到很优秀的复杂度。前置知识:二叉搜索树\(\text{BST}\)\(\text{Treap}\)基本知识......
  • 类型推导--Effective modern C++ 学习笔记
    类型推导--EffectivemodernC++学习笔记auto和template虽然用起来很爽,但是作为程序员我们应该了解C++编译器做了哪些事情,从而确实的保证整套机制能够顺利的运作。1.模......
  • 再次学习忘却
    再次学习忘却PhotobyProcreator用户体验设计工作室on不飞溅我已经使用HTML/CSS/JS开发Web应用程序超过9个月了。所有这些努力都得到了回报,并让我获得了实......
  • 机器学习论文不常见符号总结
    [][a]可能表示的是不超过a的整数组成的集合https://math.stackexchange.com/a/4139609论文《PatientKnowledgeDistillationforBERTModelCompression》的第3.1......
  • Typescript学习之路(2) - 类型简述
    什么是强类型语言/弱类型语言?强类型语言老式定义:在强类型语言中,当一个对象从调用函数传递到被调用函数时,其类型必须与被调用函数中声明的类型兼容。A(){B(x)}B......
  • Typescript学习之路(3) - 基础数据类型介绍
    安装TSnpmi-gtypescriptTips:因为使用的命令是tsc,这里安装的时候好多人都错误写成了 npmi-gtsc❎,结果在使用的时候就会被提示,安装的不对,要重新安装。TS转换JS......