Flask搭建Web项目需理清目录结构、路由逻辑和模板渲染三核心。示例包含基础路由、Jinja2模板、表单处理及蓝图模块化,实现极简博客首页。

用 Flask 搭建一个可运行的 Web 项目并不需要太多前置配置,关键在于理清目录结构、路由逻辑和模板渲染这三块核心。下面以一个极简但完整的博客首页为例,带你从零启动。
初始化项目与基础路由
新建文件夹,用 pip 安装 Flask 后,创建 app.py:
```python
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def home():
return render_template('index.html', title='我的小站', posts=[
{'id': 1, 'title': 'Flask 入门第一课'},
{'id': 2, 'title': 'Jinja2 模板怎么用'}
])
if __name__ == '__main__':
app.run(debug=True)
```
注意:debug=True 仅用于开发阶段;路由函数必须有返回值,通常为字符串或 render_template 调用。
立即学习“Python免费学习笔记(深入)”;
组织模板与静态资源
Flask 默认识别 templates/ 和 static/ 两个文件夹:
- 在项目根目录下新建 templates/index.html,用 Jinja2 语法插入变量:
{{ title }}
- css/style.css 存放样式,通过 引入
{% for post in posts %}
添加简单表单与数据接收
想让用户提交标题和内容?改写路由支持 GET/POST:
XpZC新普众筹系统下载XpZC新普众筹系统是以asp.net mvc+sql进行开发的众筹网站源码。新普众筹系统可以实现众筹平台的快速搭建,规范业务流程、项目募集资金、运营风险控制、资金支付结算、项目实施控制、投后管理,安全的软件系统架构和规范的项目风险控制体系,为投融资双方提供安全优质的服务,达成互利共赢。众筹类型可选择股权众筹和回报众筹;根据客户实际需求能灵活增加系统功能模块,致力于为项目人和投资人搭建一个安全、高
```python
@app.route('/add', methods=['GET', 'POST'])
def add_post():
if request.method == 'POST':
title = request.form.get('title')
content = request.form.get('content')
# 这里可暂存到列表或数据库
flash('发布成功!')
return redirect(url_for('home'))
return render_template('add.html')
```别忘了在顶部导入:from flask import request, flash, redirect, url_for;模板中用 提交。
用蓝图(Blueprint)拆分模块
项目稍大时,把不同功能分离更易维护。例如新建 blog.py:
```python
from flask import Blueprint, render_template
blog_bp = Blueprint('blog', __name__, url_prefix='/blog')
@blog_bp.route('/')
def list_posts():
return render_template('blog/list.html')
```然后在 app.py 中注册:app.register_blueprint(blog_bp)。这样 /blog/ 开头的请求就由 blog 模块处理,避免所有逻辑挤在一个文件里。









