博客
关于我
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/

你可能感兴趣的文章
Objective-C实现HashTable哈希表算法(附完整源码)
查看>>
Objective-C实现haversine distance斜距算法(附完整源码)
查看>>
Objective-C实现heap sort堆排序算法(附完整源码)
查看>>
Objective-C实现heaps algorithm堆算法(附完整源码)
查看>>
Objective-C实现heap堆算法(附完整源码)
查看>>
Objective-C实现Heap堆算法(附完整源码)
查看>>
Objective-C实现hexagonal numbers六边形数算法(附完整源码)
查看>>
Objective-C实现hidden layers neural network浅层神经网络算法(附完整源码)
查看>>
Objective-C实现highest response ratio next高响应比优先调度算法(附完整源码)
查看>>
Objective-C实现hill climbing爬山法用来寻找函数的最大值算法(附完整源码)
查看>>
Objective-C实现histogram stretch直方图拉伸算法(附完整源码)
查看>>
Objective-C实现Hopcroft算法(附完整源码)
查看>>
Objective-C实现horizontal projectile motion平抛运动算法(附完整源码)
查看>>
Objective-C实现hornerMethod霍纳法算法(附完整源码)
查看>>
Objective-C实现Horn–Schunck光流算法(附完整源码)
查看>>
Objective-C实现Http Post请求(附完整源码)
查看>>
Objective-C实现http下载文件 (附完整源码)
查看>>
Objective-C实现Http协议下载文件(附完整源码)
查看>>
Objective-C实现huffman哈夫曼编码算法(附完整源码)
查看>>
Objective-C实现ID3贪心算法(附完整源码)
查看>>