Flask + SQLAlchemy:用 Python 打造一只小而美的 Web 应用 [特殊字符]
1. 开场白
你是不是也遇到过这种情况:脑子里突然冒出一个点子——比如写个待办清单,或者做个迷你记账本。
问题是,你不会前端、不会数据库,只会一点 Python。
那还能做网站吗?
当然能!只要有 Flask 和 SQLAlchemy,你就能把点子快速变成一个能跑的 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 把它变成现实吧!
👉 资源推荐:
更多推荐

所有评论(0)