博客
关于我
Flask简单学习
阅读量:431 次
发布时间:2019-03-06

本文共 3021 字,大约阅读时间需要 10 分钟。

Flask框架入门指南

一、安装

安装Flask框架非常简单。只需在终端中运行以下命令:

pip install flask

建议在安装前创建一个虚拟环境,以避免依赖冲突。例如:

python -m venv myenvsource myenv/bin/activate  # 或者  myenv\Scripts\activatepip install flask

二、Hello World

创建一个名为 hello.py 的文件,按照以下内容编写:

# coding: utf-8from flask import Flaskapp = Flask(__name__)@app.route('/')def hello_world():    return 'Hello world'

运行脚本:

python hello.py

在浏览器中访问 http://127.0.0.1:5000/,即可看到 "Hello world"。

路由说明

  • @app.route('/'):指定访问根路径时的处理函数。
  • app.run():启动 Flask 应用,默认监听在 127.0.0.1:5000

三、路由详解

Flask 的核心功能之一是路由管理。通过 @app.route 装饰器,可以将函数绑定到特定的 URL。

基本用法

from flask import Flaskapp = Flask(__name__)@app.route('/greeting')def greet():    return 'Hello, Flask!'

URL 变量

要在 URL 中添加变量部分,可以使用 <variable_name> 格式。如:

@app.route('/user/
')def display_user_profile(username): return f"用户 {username} 的资料"

URL 转换器

可以通过 :<converter:variable> 定义转换器。例如:

@app.route('/post/
')def show_post(post_id): return f"文章 {post_id} 的内容"

四、构造 URL

编写一个 construct_url.py 的文件,查看生成的 URL:

from flask import Flask, url_forapp = Flask(__name__)@app.route('/')def index():    pass@app.route('/login')def login():    pass@app.route('/user/
')def profile(username): passwith app.test_request_context(): print(url_for('index')) # 输出: / print(url_for('login')) # 输出: /login print(url_for('login', next='/')) # 输出: /login?next=/ print(url_for('profile', username='John Doe')) # 输出: /user/John%20Doe

运行脚本:

python construct_url.py

输出结果:

//login/login?next=//user/John%20Doe

五、HTTP 方法

默认情况下,路由只响应 GET 请求。通过在 @app.route 中指定 methods 参数,可以支持其他 HTTP 方法。

@app.route('/login', methods=['GET', 'POST'])def login_handler():    if request.method == 'POST':        # 处理登录逻辑        pass    else:        # 显示登录页面        pass

六、模板渲染

Flask 集成 Jinja2 模板引擎。通过 render_template() 方法渲染模板。

编写一个 template_demo.py 文件:

from flask import render_templateapp = Flask(__name__)@app.route('/hello/
')def hello(name=None): return render_template('hello.html', name=name)

模板文件应放置在 templates 文件夹中。例如:

    你好,{{ name }}    

你好,{{ name }}!

运行脚本:

python template_demo.py

在浏览器中访问 http://127.0.0.1:5000/hello/,即可看到动态渲染的内容。

七、URL 重定向

通过 redirect() 函数实现 URL 重定向。

编写一个 redirect_demo.py 文件:

from flask import redirect, url_forapp = Flask(__name__)@app.route('/index', methods=['GET', 'POST'])def index():    return redirect(url_for('login'))@app.route('/login', methods=['GET', 'POST'])def login():    return "LOGIN"

运行脚本:

python redirect_demo.py

访问 http://127.0.0.1:5000/index/,会被重定向到 /login/

八、定义错误页面

通过自定义错误处理器来定义错误页面。

编写一个 error_handling.py 文件:

from flask import Flask, abort, render_templateapp = Flask(__name__)@app.route('/index', methods=['GET', 'POST'])def index():    return "OK"@app.errorhandler(404)def page_not_found(error):    return render_template('page_not_found.html'), 404

模板文件 page_not_found.html

    404 - 页面未找到    

404 - 页面未找到

运行脚本:

python error_handling.py

访问 http://127.0.0.1:5000/invalid_url/,将显示 404 错误页面。

参考文档

通过以上内容,读者可以逐步掌握 Flask 框架的核心功能,包括安装、路由、模板渲染、URL 构造、HTTP 方法处理及错误页面定义等。

转载地址:http://dyfyz.baihongyu.com/

你可能感兴趣的文章
php函数性能优化中应注意哪些问题?
查看>>
PHP函数操作数字和汉字互转(100以内)
查看>>
PHP函数方法
查看>>
PHP创建目录mkdir无写入权限的问题解决方案
查看>>
PHP删除指定目录下的所有文件和文件夹 | 删除指定文件
查看>>
php删除文件夹下面所有文件包括(删除文件夹)不删除文件夹
查看>>
React Collapse Pane 项目教程
查看>>
php判断ip黑名单程序代码
查看>>
php判断复选框是否被选中的方法
查看>>
PHP判断指定目录下是否存在文件
查看>>
php判断数组是否为空
查看>>
PHP判断数组是否有重复值、获取重复值
查看>>
springboot基于Web的社区留守儿童管理系统源码毕设+论文
查看>>
Springboot基于Redisson实现Redis分布式可重入锁【案例到源码分析】
查看>>
PHP利用正则表达式实现手机号码中间4位用星号(*)替换显示
查看>>
PHP加密与安全的最佳实践
查看>>
PHP区分 企业微信浏览器 | 普通微信浏览器 | 其他浏览器
查看>>
php原生代码怎么连表查询,PHP tp5中使用原生sql查询代码实例
查看>>
PHP去掉转义符
查看>>
php去除字符串开头或末尾的字符(例如逗号)
查看>>