路由与视图
处理 HTTP 请求
路由与视图 是 CoddyKit 上的免费 Python Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Python Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Python Academy 课程共包含 4 节课。
什么是 Flask?
Flask 是一个轻量级 Python Web 框架。它只需很少的样板代码,就能帮助您构建 Web 应用和 API。请使用 pip install flask 安装。
from flask import Flask
app = Flask(__name__)
print('Flask app created:', app.name)创建应用
每个 Flask 应用都从 app = Flask(__name__) 对象开始。__name__ 参数可以帮助 Flask 定位模板等资源。
from flask import Flask
app = Flask(__name__)
if __name__ == '__main__':
# app.run() starts the development server
print('App is ready to run')您的第一个路由
路由会将 URL 映射到一个函数(即视图)。@app.route() 装饰器绑定路径;函数的返回值会成为响应正文。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'Hello, world!'
print('Route / -> home')多个路由
您可以根据需要定义任意数量的路由。每条路径都有自己的视图函数。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'Home page'
@app.route('/about')
def about():
return 'About page'
print('Two routes defined')动态 URL 部分
使用 <variable> 捕获 URL 的部分内容。Flask 会将这些内容作为参数传递给视图。
from flask import Flask
app = Flask(__name__)
@app.route('/user/<username>')
def show_user(username):
return 'Profile of ' + username
print('URL /user/alice -> show_user')类型转换器
添加 <int:post_id> 这样的转换器,让 Flask 验证该值并将其转换为正确的类型。
from flask import Flask
app = Flask(__name__)
@app.route('/post/<int:post_id>')
def show_post(post_id):
return 'Post number ' + str(post_id)
print('post_id arrives as an int')HTTP 方法
默认情况下,路由处理 GET。传入 methods=['GET', 'POST'] 可接受其他动词。
from flask import Flask
app = Flask(__name__)
@app.route('/submit', methods=['GET', 'POST'])
def submit():
return 'Handled GET or POST'
print('submit accepts GET and POST')检查请求方法
在视图中,request.method 会告诉您使用了哪个动词,以便您据此分支处理逻辑。
from flask import Flask, request
app = Flask(__name__)
@app.route('/submit', methods=['GET', 'POST'])
def submit():
if request.method == 'POST':
return 'Form submitted'
return 'Show the form'
print('Branch on request.method')返回状态码
返回一个 (body, status_code) 元组即可设置 HTTP 状态,例如使用 404 表示未找到。
from flask import Flask
app = Flask(__name__)
@app.route('/missing')
def missing():
return 'Not here', 404
print('Returns body with status 404')构建 URL
url_for('view_name') 会根据视图名称生成 URL。这样可以避免将可能发生变化的路径硬编码。
from flask import Flask, url_for
app = Flask(__name__)
@app.route('/about')
def about():
return 'About'
# url_for('about') -> '/about'
print('url_for builds URLs by view name')运行服务器
调用 app.run(debug=True) 可启动开发服务器。调试模式会在发生更改时重新加载,并显示有帮助的错误页面。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'Hi'
if __name__ == '__main__':
app.run(debug=True)快速检查
测试您对路由的理解。
回顾
您构建了 Flask 路由和视图。
app = Flask(__name__)会创建应用@app.route()会将 URL 映射到视图函数<int:id>会捕获并转换动态 URL 部分methods=和request.method会处理 HTTP 动词url_for()会构建 URL,app.run()会启动服务器
常见问题解答
「路由与视图」课时是免费的吗?
是的 — 「路由与视图」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Python Academy 课程的其余内容,请升级到 CoddyKit PRO。 Python Academy 课程共包含 4 节课。
「路由与视图」这节课中我会学到什么?
处理 HTTP 请求 你通过在浏览器中直接运行的动手代码来练习 Python Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Python Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Python Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「路由与视图」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Python Academy 课中编写并运行代码吗?
能。每节 Python Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。