- Python
Flask是一个轻量级的Python Web框架
- @ 2025-10-3 21:15:53
Flask是一个轻量级的Python Web框架,简单易用,非常适合初学者快速开发小型Web应用。以下是一份针对零基础的详细Flask教程:
环境搭建
- Python安装:访问Python官方网站,根据你的操作系统(Windows、Mac或Linux)下载并安装Python 3.x版本。安装时记得勾选“Add Python to PATH”,这样方便在命令行中使用Python。
- 选择Python开发环境:推荐使用PyCharm社区版,它是免费的,功能强大,提供代码自动补全、调试等功能。安装完成后,打开PyCharm,创建一个新的项目。
- 创建虚拟环境(可选但推荐):虚拟环境可以隔离不同项目的依赖,避免版本冲突。在命令行中执行以下操作:
- 创建虚拟环境:
python -m venv myenv - 激活虚拟环境(Windows):
myenv\Scripts\activate - 激活虚拟环境(Linux/Mac):
source myenv/bin/activate
- 创建虚拟环境:
- 安装Flask:在激活的虚拟环境中,使用pip安装Flask,命令为
pip install flask。
第一个Flask应用
创建一个名为app.py的文件,编写以下代码:
from flask import Flask
# 创建Flask应用实例
app = Flask(__name__)
# 定义路由和视图函数
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
# 启动应用
app.run(debug=True)
在命令行中运行该文件,命令为python app.py。然后打开浏览器,访问http://127.0.0.1:5000,你将看到页面显示“Hello, World!”。
路由和视图函数
- 基本路由:Flask使用
@app.route()装饰器来定义路由,将URL与视图函数关联起来。例如:
@app.route('/about')
def about():
return 'This is the about page.'
访问http://127.0.0.1:5000/about即可看到相应的页面内容。
- 动态路由:可以在路由中使用变量,通过
<variable_name>的形式定义,视图函数可以接收该变量作为参数。例如:
@app.route('/user/<username>')
def show_user_profile(username):
return f'User: {username}'
访问http://127.0.0.1:5000/user/John,页面将显示“User: John”。
- 路由参数类型:可以指定变量的类型,如
int、float等。例如:
@app.route('/post/<int:post_id>')
def show_post(post_id):
return f'Post ID: {post_id}'
访问http://127.0.0.1:5000/post/123,页面将显示“Post ID: 123”。
请求和响应
- 获取请求数据:Flask使用
request对象来处理请求数据,如表单数据、查询参数等。例如:
from flask import Flask, request
app = Flask(__name__)
@app.route('/test')
def test():
wd = request.args.get('wd')
ie = request.values.get('ie')
return f"Hello! {wd} == {ie}"
访问http://127.0.0.1:5000/test/?wd=python&ie=ok,可以获取到查询参数wd和ie的值。
- 响应对象:可以使用
make_response()函数创建自定义响应对象,设置响应头、状态码等。例如:
from flask import make_response
def custom_response():
resp = make_response('This is a custom response')
resp.headers['Content-Type'] = 'text/plain'
resp.status_code = 201
return resp
模板渲染
Flask使用Jinja2模板引擎来渲染HTML页面。创建一个名为templates的文件夹,在其中创建一个index.html文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Home Page</title>
</head>
<body>
<h1>Welcome to the Home Page!</h1>
<p>Message: {{ message }}</p>
</body>
</html>
在app.py中使用render_template()函数渲染模板:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/home')
def home():
message = 'Hello from the server!'
return render_template('index.html', message=message)
静态文件处理
创建一个名为static的文件夹,用于存放静态文件,如CSS、JavaScript和图片等。在HTML模板中引用静态文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Home Page</title>
<link rel="stylesheet" href="{{ url_for('static', filename='styles.css') }}">
</head>
<body>
<h1>Welcome to the Home Page!</h1>
</body>
</html>
4 条评论
-
admin SU @ 2025-10-5 20:02:58已修改
__name__ 是 Python 内置的特殊变量,用于标识当前模块的运行状态,核心作用是区分“模块被直接运行”还是“被导入到其他模块”。 - 当直接运行该模块时, __name__ 的值会自动设为 "__main__" 。 - 当模块被导入到其他模块中使用时, __name__ 的值会自动设为该模块的文件名(不含 .py 后缀)。 最常见的用途是给脚本写“主程序入口”,比如: python # 模块名为 example.py if __name__ == "__main__": # 只有直接运行 example.py 时,这部分代码才会执行 print("我是直接运行的") else: # 被其他模块导入时,执行这里(可选) print("我是被导入的,我的模块名是", __name__) # 会输出 "example" 需要我帮你写一个包含 __name__ 判断的具体 -
@ 2025-10-3 21:22:37
以下是代码中每个英文单词(及符号)的汉字音译(尽量贴近发音,非标准翻译,仅为辅助记忆):
# 从 弗拉斯克 这个 工具包 里,拿出"弗拉斯克"这个 神奇的 工具 # 就像 从 工具箱 里 拿出 锤子 一样,我们 需要 它 来 搭建 网站 弗罗姆 flask 伊姆波特 Flask # 创建 一个 弗拉斯克 应用 实例(就是 一个 网站 程序 的"本体") # __内姆__ 是 派森 的 小 魔法,表示 当前 这个 文件 的 名字 # 给 网站 起个"代号",方便 弗拉斯克 知道 去 哪里 找 东西 爱普 = Flask(__内姆__) # 定义 一个"路口"(路由):当 有人 访问 网站 的 首页(/ 就 代表 首页)时 # 就 会 执行 下面 的 hello_world 函数,相当于"看到 首页 就 做 这件事" @爱普.入特('/') 得夫 hello_world(): # 这个 函数 的 作用 是:返回 一句话"哈喽,沃德!" # 当 有人 访问 首页 时,浏览器 就 会 显示 这句话 瑞腾 'Hello, World!' # 这 是 一个 判断:如果 我们 直接 运行 这个 文件(而 不是 被 其他 程序 调用) # 就 执行 下面 的 代码,启动 网站 伊夫 __内姆__ == '__梅因__': # 启动 网站 服务器,让 别人 可以 访问 你 的 网站 # 迪ebug=出 表示"调试 模式":如果 改了 代码,网站 会 自动 更新,方便 我们 测试 爱普.润(debug=出)说明:
- 音译尽量贴近英文发音(比如
Flask译为“弗拉斯克”,Python译为“派森”); - 特殊符号(如
@、=、:)保留原样,方便对应代码结构; - 部分单词(如
debug)用“迪ebug”混合标注,兼顾发音和识别; - 中文注释保持不变,帮助理解代码含义。
这样的音译可以帮你在不认识英文单词时,先通过发音记住代码结构~
- 音译尽量贴近英文发音(比如
-
@ 2025-10-3 21:18:41
以下是代码中英文单词的汉字音译表格(按代码顺序排列,尽量贴近发音,辅助记忆):
英文单词/符号 汉字音译(贴近发音) 说明 from 弗罗姆 表示“从……中” flask 弗拉斯克 Flask框架名称 import 伊姆波特 表示“导入、引入” Flask 弗拉斯克(首字母大写) 框架核心类名 app 爱普 变量名,代表应用实例 = 等于 赋值符号 name 双下划线内姆双下划线 Python内置变量 @ 艾特 装饰器符号 route 入特 表示“路由、路径” / 斜杠 代表网站首页路径 def 得夫 定义函数的关键字 hello_world 哈喽_沃德 函数名(中间下划线保留) ( 左括号 函数参数开始符号 ) 右括号 函数参数结束符号 : 冒号 代码块开始符号 return 瑞腾 函数返回结果关键字 Hello 哈喽 英文单词“你好” World 沃德 英文单词“世界” if 伊夫 条件判断关键字“如果” == 等于等于 比较运算符“等于” main 双下划线梅因双下划线 表示程序主入口 run 润 方法名,“运行”的意思 debug 迪ebug 调试模式(保留部分拼写) True 出 布尔值“真” 说明:
- 音译优先贴近英文发音,方便记忆代码结构;
- 特殊符号(如
@、=、())保留符号本身或用通俗名称标注; - 下划线
_、斜杠/等保留原样,避免混淆代码格式; - 类名、函数名等保留核心发音特征,帮助对应代码功能。
-
@ 2025-10-3 21:17:17
下面是对这段Flask代码的详细注释,用小学生也能理解的语言解释每一行的作用:
# 从Flask这个工具包里,拿出"Flask"这个神奇的工具 # 就像从工具箱里拿出锤子一样,我们需要它来搭建网站 from flask import Flask # 创建一个Flask应用实例(就是一个网站程序的"本体") # __name__是Python的小魔法,表示当前这个文件的名字 # 给网站起个"代号",方便Flask知道去哪里找东西 app = Flask(__name__) # 定义一个"路口"(路由):当有人访问网站的首页(/就代表首页)时 # 就会执行下面的hello_world函数,相当于"看到首页就做这件事" @app.route('/') def hello_world(): # 这个函数的作用是:返回一句话"Hello, World!" # 当有人访问首页时,浏览器就会显示这句话 return 'Hello, World!' # 这是一个判断:如果我们直接运行这个文件(而不是被其他程序调用) # 就执行下面的代码,启动网站 if __name__ == '__main__': # 启动网站服务器,让别人可以访问你的网站 # debug=True表示"调试模式":如果改了代码,网站会自动更新,方便我们测试 app.run(debug=True)简单总结一下整个过程:
- 先"拿来"Flask工具(就像准备好积木)
- 用工具创建一个网站"容器"(就像搭一个空的积木房子)
- 告诉网站:"当有人访问首页时,就显示'Hello, World!'"(就像贴个标语在门口)
- 最后启动网站,让它开始工作(就像打开房子的大门,欢迎别人进来)
运行这段代码后,在浏览器里输入
http://127.0.0.1:5000,就能看到那个"Hello, World!"啦~
- 1