一、Flask 介绍与安装
Flask 是一个使用 Python 实现的 Web 开发微框架,具有丰富的扩展,可以非常方便的继承 Jinja2
、SQLAlchemy
、WTF
等扩展。
哪些公司使用了 Flask
构建 Web 应用?
Flask 安装
pip 安装
在终端下指定使用 Py 3.8 来安装 1.1.2 版本的 Flask。
bash
复制代码
pip3.8 install flask==1.1.2
使用该命令安装时也可以选择性使用以下属性:
- –timeout:设置超时时间
- -i:使用指定的镜像源安装
bash
复制代码
# 使用清华镜像源安装1.1.2版本的Flask
pip3.8 install flask==1.1.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
源码安装
使用源码进行安装,进入源码目录下,运行命令
bash
复制代码
python3 setup.py install
安装完成之后可以通过在终端中运行命令 pip3.8 list
或者通过在 Python 代码中导入 Flask 来查看 Flask 版本信息。
二、Flask Quickstart
使用PyCharm创建一个Pure Python项目 flask-quickstart,新增一个 Python 脚本 app.py
python
复制代码
from flask import Flask
# 创建一个Flask对象/实例
app = Flask(__name__)
@app.route('/hallo')
def hallo():
return 'Hallo Flask'
if __name__ == '__main__':
app.run()
- name:表示Flask应用的主模块或者包的名称,Flask使用该参数来确定应用的位置,以此找到应用中其他文件的位置,如模板、静态资源文件等
- @app.route():装饰器,表示路由配置,用户在浏览器中输入的URI映射到指定的函数
运行该脚本,控制台打印出URL地址
在浏览器中输入控制台打印出的地址
控制台打印出 hallo() 函数返回的字符串,此时 /hallo
就和 hallo()
函数关联起来了
app.py 中的 hallo()
函数称为视图函数,每个视图函数上可以加多个装饰器,既可以有多个 URI
映射到同一个视图函数上.
在 hallo()
函数上添加一个 URI
python
复制代码
# 其余代码不变
@app.route('/')
@app.route('/hallo')
def hallo():
return 'Hallo Flask'
# 其余代码不变
重新启动脚本,浏览器输入 127.0.0.1:5000
“/” 同样也可以映射到hallo()视图函数上
MTV 模型
在app.py同级目录下新建一个 templates 文件夹,增加 hallo.html 页面
html
复制代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<title>Index</title>
</head>
<body>
<h1>{{info.message}}</h1>
</body>
</html>
修改app.py
python
复制代码
from flask import render_template
# 其余代码不变
@app.route('/hallo')
@app.route('/')
def hallo():
info = {
'message': "这是存在message变量中的信息"
}
return render_template('index.html', info=info)
Flask 的 MTV 模型
- V 表示视图 View:负责业务逻辑,对应项目中的视图函数
- T 表示模板 Template:负责如何把页面展示给用户
- M 表示模型 Model:与数据库表对应的类
浏览器器发送的请求首先会根据URI地址找到对应的视图函数,视图函数中会处理请求包括获取对进行进行判断,获取请求中的参数,之后会与Model层进行交互,通过ORM框架对数据进行增删改查,并将操作结果保存,Template中会通过模板语法处理视图函数中的数据,之后再有视图函数将Template返回给浏览器进行渲染,最终呈现给用户
视图函数是请求处理的核心,所以视图层是一定存在的,可以没有 Template 或者 Model。
实现 MTV 三层架构的第三方库:
-
模型Model
- Flask-PyMongo/Flask-SQLAlchemy
-
视图View
- Flask-WTF/Flask-Uploads/
-
模板Template
- Jinja2
三、Flask 内置服务器
Flask 推荐的启动方式
flask 1.0 之后就不再推荐使用 main 函数的方式启动 flask 应用了,而是通过设置环境变量运行启动命令的方式来启动Flask应用
bash
复制代码
# 设置环境变量
set/export FLASK_APP = app.py
# 启动应用
flask run -h 0.0.0.0 -p 8080
# 这条命令也可以设置host和port
flask run --host=0.0.0.0 --port=8080
# 查看更多命令
flask run --help
IDEA 配置 Flask 应用启动方式
Flask 应用开启 Debug 模式
Flask应用开启 Debug 模式非常简单,只要通过命令将 FLASK_ENV
设置为 development
即可。
bash
复制代码
set/export FLASK_ENV=development
flask run
开启调试模式之后,修改代码保存后服务器会自动重启
四、Flask 的扩展
由于 Flask 是一个 microframework,除了核心功能外其他模块都需要使用第三方扩展,如 ORM 框架、表单等,这些都可以通过官方网站查找到所需要的第三方扩展。
这里给大家分享一份Python全套学习资料,包括学习路线、软件、源码、视频、面试题等等,都是我自己学习时整理的,希望可以对正在学习或者想要学习Python的朋友有帮助!
CSDN大礼包:全网最全《全套Python学习资料》免费分享🎁
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓
1️⃣零基础入门
① 学习路线
对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
② 路线对应学习视频
还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
③练习题
每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
因篇幅有限,仅展示部分资料
2️⃣国内外Python书籍、文档
① 文档和书籍资料
3️⃣Python工具包+项目源码合集
①Python工具包
学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
②Python实战案例
光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
③Python小游戏源码
如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
4️⃣Python面试题
我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
5️⃣Python兼职渠道
而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
上述所有资料 ⚡️ ,朋友们如果有需要 📦《全套Python学习资料》的,可以扫描下方二维码免费领取 🆓
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓