从零开始搭建 flask 博客(1)实验

🧱 一、项目结构

最终项目目录如下:

复制代码
flask_blog/
├── app/
│   ├── __init__.py
│   ├── routes.py
│   └── templates/
│       ├── base.html
│       └── index.html
└── myblog.py

⚙️ 二、环境配置

1. 创建虚拟环境

复制代码
# 创建并激活虚拟环境
python -m venv venv
source venv/bin/activate       # macOS / Linux
venv\Scripts\activate          # Windows

2. 安装 Flask

pip install flask


🧩 三、项目代码

app/init.py

复制代码
from flask import Flask

app = Flask(__name__)

# 注意:这里导入 routes,是为了注册路由
from app import routes

app/routes.py

复制代码
from flask import render_template
from app import app

@app.route('/')
@app.route('/index')
def index():
    user = {'username': 'duke'}
    posts = [
        {'author': {'username': '刘'}, 'body': '这是模板模块中的循环例子~1'},
        {'author': {'username': '忠强'}, 'body': '这是模板模块中的循环例子~2'}
    ]
    return render_template('index.html', title='我的博客', user=user, posts=posts)

app/templates/base.html

复制代码
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    {% if title %}
        <title>{{ title }} - 博客</title>
    {% else %}
        <title>欢迎来到博客!</title>
    {% endif %}
</head>
<body>
    <div>
        <h1>我的 Flask 博客</h1>
        <hr>
        {% block content %}{% endblock %}
    </div>
</body>
</html>

app/templates/index.html

复制代码
{% extends "base.html" %}
{% block content %}
    <h2>你好呀, {{ user.username }}!</h2>
    {% for post in posts %}
        <div>
            <p><b>{{ post.author.username }}</b> 说: {{ post.body }}</p>
        </div>
    {% endfor %}
{% endblock %}

myblog.py

复制代码
from app import app

if __name__ == '__main__':
    app.run(debug=True)

🚀 四、运行项目

1️⃣ 在项目根目录下设置环境变量

复制代码
export FLASK_APP=myblog.py       # macOS / Linux
set FLASK_APP=myblog.py          # Windows

2️⃣ 启动 Flask 服务器

flask run

3️⃣ 打开浏览器访问:

http://127.0.0.1:5000/

相关推荐
uzong6 分钟前
业务新老系统数据迁移-负责人经验总结和复盘
后端
ctlover17 分钟前
Python文件操作
开发语言·python
dogstarhuang29 分钟前
大模型 API 停服怎么办:用 API 网关实现多模型统一接入与可切换架构
人工智能·后端·架构·大模型·api·数字化转型·ai应用
AndrewHZ30 分钟前
图像处理入门(第005期):颜色空间入门——RGB/HSV/CMYK/Lab
图像处理·python·opencv·hsv·rgb·色彩空间
风流 少年38 分钟前
Spring AI 2.0:Tool
java·python·spring
郝学胜-神的一滴1 小时前
干货版《算法导论》17:二叉树核心原理、遍历逻辑与高阶实操全解
数据结构·c++·python·算法·计算机·编程
程序猿DD1 小时前
OctaFuse Gateway 2.5.0:接入 Responses 端点、更易理解的路由配置
后端·agent
WangY_ZQ1 小时前
【无标题】
windows·python
桐桐桐1 小时前
PDF 翻译工具横评与自建批量方案:从在线工具到 Python 自动化
python·pdf·自动化
evans在进步1 小时前
LeetCode 33:搜索旋转排序数组——Java 两阶段二分查找详解
java·python·leetcode