@创建于:2022.10.09
@修改于:2022.10.09


文章目录

  • 1、Flask介绍
  • 2、安装
  • 3、一个简单的应用
  • 3.1 创建.py文件
  • 3.2 启动服务
  • 3.3 另一种启动方式
  • 4、设置外部可见的服务
  • 5、调试模式


1、Flask介绍

flask是一款非常流行的python Web框架,它出生于2010年,作者是Armin Ronacher。说出来比较让人惊讶,本来这个项目只是作者在愚人节的一个玩笑,后来由于非常受欢迎,进而成为一个正式的项目。

  • 特点:
  • 微框架、简洁、只做他需要做的,给开发者提供了很大的扩展性。
    Flask和相应的插件写得很好,用起来很爽。
  • 开发效率非常高,比如使用SQLAlchemy的ORM操作数据库可以节省开发者大量书写sql的时间。
  • Flask的灵活度高
  • 他不会帮你做太多的决策,一些你都可以按照自己的意愿进行更改
  • 使用Flask开发数据库的时候,具体是使用SQLAlchemy还是MongoEngine,选择权完全掌握在你自己的手中。区别于Django,Django内置了非常完善和丰富的功能,并且如果你想替换成你自己想要的,要么不支持,要么非常麻烦。
  • 把默认的Jinija2模板引擎替换成其他模板引擎都是非常容易的。

Flask 英文官网Flask 中文官网

2、安装

Flask当前最新发布Version 2.2.2(Released 2022-08-08)。
Flask中文版翻译到Version 1.1.1(Released 2019-07-08)。

本文安装Flask==2.0.0(Released 2021-05-11),Drop support for Python 2 and 3.5,部分更新如下图所示。

flask sqlalchemy镜像 flask sql server_服务器

# 创建虚拟环境,用来测试和关联项目
conda create -n flask python=3.7
conda install flask==2.0.0

Flask installFlask安装

3、一个简单的应用

3.1 创建.py文件

创建一个项目,在home.py里面写上下面的内容。

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

@app.route('/test')
def my_test():
    a = 1
    b = 2
    return '{} + {} = {}'.format(a, b, a+b)

代码解释:

  • 首先我们导入了 Flask 类。 该类的实例将会成为我们的 WSGI 应用。
  • 接着创建一个该类的实例。第一个参数是应用模块或者包的名称。如果你使用 一个单一模块(就像本例),那么应当使用 name ,因为名称会根据这个 模块是按应用方式使用还是作为一个模块导入而发生变化(可能是 ‘main’ , 也可能是实际导入的名称)。这个参数是必需的,这样 Flask 才能知道在哪里可以 找到模板和静态文件等东西。
  • 使用 route() 装饰器来告诉 Flask 触发函数的 URL 。
  • 函数名称被用于生成相关联的 URL 。函数最后返回需要在用户浏览器中显示的信息。

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

3.2 启动服务

本文作者在Windows pycharm下开发的,启动服务过程如下:

set FLASK_APP=home.py 
python -m flask run
#或
flask run

显示如下,代码服务启动了。

(flask) D:\PycharmProjects\flask_web>set FLASK_APP=home.py    

(flask) D:\PycharmProjects\flask_web>python -m flask run      
 * Serving Flask app 'home.py' (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on http://127.0.0.1:5000
Press CTRL+C to quit

启动后,看到如下信息

flask sqlalchemy镜像 flask sql server_flask sqlalchemy镜像_02

flask sqlalchemy镜像 flask sql server_flask sqlalchemy镜像_03

3.3 另一种启动方式

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

@app.route('/test')
def my_test():
    a = 1
    b = 2
    return '{} + {} = {}'.format(a, b, a+b)

# 增加下面代码,通过运行home.py文件启动
if __name__ == '__main__':
    app.run()

这时候,可以通过PyCharm的 run进行启动。
或者在PyCharm的Terminal终端启动,如下面所示。

(flask) D:\PycharmProjects\flask_web>python home.py
 * Serving Flask app 'home' (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on http://127.0.0.1:5000
Press CTRL+C to quit

4、设置外部可见的服务

运行服务器后,会发现只有你自己的电脑可以使用服务,而网络中的其他电脑无法访问。默认设置就是这样的,这是因为在调试模式下该应用的用户可以执行你电脑中的任意Python代码。

如果关闭了调试器或信任公开网络中的用户,就可以让服务器被公开访问。 实现方式是:在命令行上简单的加上 --host=0.0.0.0

flask run --host=0.0.0.0

Terminal终端显示:

(flask) D:\PycharmProjects\flask_web>flask run --host=0.0.0.0
 * Serving Flask app 'home.py ' (lazy loading)
 * Environment: development
 * Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on all addresses (0.0.0.0)
 * Running on http://127.0.0.1:5000
 * Running on http://192.168.108.50:5000
Press CTRL+C to quit
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 951-242-728

5、调试模式

Flask 命令可以方便地启动一个本地开发服务器,但是每次应用代码被修改后,需要手动重启服务器。这样显然不方便。

Flask支持调试模式,服务器会在修改应用代码之后自动重启,并且当应用出错时还会提供一个调试器。

打开所有开发功能(包括调试模式):在运行服务器之前导出 FLASK_ENV 环境变量并把其设置为 development。

# 如果设置过 FLASK_APP,不需要再次设置
set FLASK_APP=home.py
set FLASK_ENV=development
flask run

Terminal 终端显示

(flask) D:\PycharmProjects\flask_web>set FLASK_ENV=development

(flask) D:\PycharmProjects\flask_web>flask run
 * Serving Flask app 'home.py ' (lazy loading)
 * Environment: development
 * Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on http://127.0.0.1:5000
Press CTRL+C to quit
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 951-242-728

这样就可以愉快的修改开发代码了。可以尝试下。

参考:
快速上手 调试模式Quickstart Debug Mode

本文结束。