0Pricing
Python Academy · 课时

路由与视图

处理 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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 路由与视图
  2. 使用 Jinja2 创建模板
  3. 表单与请求数据
  4. 构建 REST 端点
← 返回 Python Academy