1. 开场白

你是不是也遇到过这种情况:脑子里突然冒出一个点子——比如写个待办清单,或者做个迷你记账本
问题是,你不会前端、不会数据库,只会一点 Python。
那还能做网站吗?
当然能!只要有 FlaskSQLAlchemy,你就能把点子快速变成一个能跑的 Web 应用。


2. Flask:极简的“门卫”

想象一下你在开一家奶茶店。门口需要一个门卫:

  • 客人说“我要点单”,门卫就带他去收银台;

  • 客人说“我想查菜单”,门卫就把菜单递过去。

Flask 就是这么个“门卫”。它帮你根据网址决定,用户看到什么内容。

来一段最小代码:

from flask import Flask

app = Flask(__name__)

@app.route("/")
def home():
    return "欢迎来到我的小网站!"

@app.route("/hello")
def hello():
    return "Hello, Flask!"

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

运行后访问 http://127.0.0.1:5000/,你就能在浏览器看到自己的“奶茶店大门”啦。


3. SQLAlchemy:数据库的“翻译官”

光有网站还不够,咱们得存点东西,比如用户、文章、账单。
可是数据库只听得懂 SQL,而 Python 小白可不一定会写 SQL。
这时候,SQLAlchemy 出场了。它就像一个翻译官,帮你把“Python 的话”翻译成“数据库的语言”。

示例:

from sqlalchemy import Column, Integer, String, create_engine
from sqlalchemy.orm import declarative_base, sessionmaker

Base = declarative_base()

class User(Base):
    __tablename__ = "users"
    id = Column(Integer, primary_key=True)
    name = Column(String)

# 建立数据库连接(这里用 SQLite,本地跑最简单)
engine = create_engine("sqlite:///app.db")
Base.metadata.create_all(engine)

Session = sessionmaker(bind=engine)
session = Session()

session.add(User(name="Alice"))
session.commit()

跑完后,你的数据库里已经多了一个叫“users”的表,还塞进了一位叫 Alice 的用户。


4. 两者合体:写个“用户注册”小网站

现在我们让 Flask 和 SQLAlchemy 拉起手来。

from flask import Flask, request, jsonify
from sqlalchemy import Column, Integer, String, create_engine
from sqlalchemy.orm import declarative_base, sessionmaker

app = Flask(__name__)
Base = declarative_base()

class User(Base):
    __tablename__ = "users"
    id = Column(Integer, primary_key=True)
    name = Column(String)

engine = create_engine("sqlite:///app.db")
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)

@app.route("/register", methods=["POST"])
def register():
    data = request.get_json()
    name = data.get("name")
    with Session() as s:
        user = User(name=name)
        s.add(user)
        s.commit()
        return jsonify({"id": user.id, "name": user.name})

@app.route("/users")
def list_users():
    with Session() as s:
        users = s.query(User).all()
        return jsonify([{"id": u.id, "name": u.name} for u in users])

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

现在你可以用 POST /register 注册用户,再用 GET /users 查看列表。是不是有点小成就感?


5. 升级打怪路线

有了这个雏形,你就能玩很多花样:

  • 登录系统 → Flask-Login

  • 数据库迁移 → Alembic

  • 更快的 API 框架 → FastAPI(类型提示 + 自动文档,简直神器)

  • 部署 → Docker 打包,一键上线

一旦你能跑起来第一个小项目,就会忍不住想给它加登录、加后台、加评论……最后你会发现,你已经不只是“写了个脚本”,而是做了一个小产品。


6. 结语

写网站真的没你想的复杂。用 Flask 搭门口,用 SQLAlchemy 管后厨,你就能开一家属于自己的“小奶茶店”。
下一次你有灵感,就不要只写在纸上了,用 Python 把它变成现实吧!


👉 资源推荐:

更多推荐