python Flask开发基础教程

python Flask开发基础教程
下面是一份面向初学者的 Flask 实战开发教程从「跑起来」到「能上线」循序渐进偏实战导向。你可以跟着一步步敲代码。一、Flask 是什么适合做什么Flask​ 是一个用 Python 编写的轻量级 Web 框架被称为“微框架”✅ 核心简单、上手快适合新手✅ 自由度高按需添加插件✅ 常用于个人博客、后台接口API、小型网站、原型验证❌ 不适合超大型、强约定项目那种更适合 Django一句话Flask 路由 请求处理 模板渲染 扩展生态二、环境准备重要1. 创建并激活虚拟环境强烈建议# 创建虚拟环境 python -m venv venv # 激活Windows venv\Scripts\activate # 激活Mac / Linux source venv/bin/activate激活后终端前面会出现(venv)。2. 安装 Flaskpip install flask验证python -c import flask; print(flask.__version__)三、第一个 Flask 应用Hello World新建app.pyfrom flask import Flask app Flask(__name__) app.route(/) def index(): return Hello, Flask! if __name__ __main__: app.run(debugTrue)运行python app.py浏览器访问http://127.0.0.1:5000/✅ 你现在已经有一个 Web 服务了。四、核心概念拆解1. 路由Route路由决定「URL → 函数」的映射关系。app.route(/about) def about(): return 关于页面带参数的路由app.route(/user/username) def user(username): return f用户名{username} app.route(/post/int:post_id) def post(post_id): return f文章ID{post_id}常见转换器string默认intfloatpath2. HTTP 请求方法GET / POSTfrom flask import request app.route(/login, methods[GET, POST]) def login(): if request.method POST: username request.form.get(username) return f登录成功欢迎 {username} return form methodpost 用户名input nameusername button typesubmit登录/button /form 3. 模板渲染HTML 页面Flask 使用Jinja2​ 模板引擎。目录结构project/ ├── app.py └── templates/ └── index.htmlapp.pyfrom flask import render_template app.route(/) def index(): return render_template(index.html, title首页)templates/index.html!DOCTYPE html html langzh-CN head meta charsetUTF-8 title{{ title }}/title /head body h1{{ title }}/h1 p这是我的第一个 Flask 页面/p /body /htmlJinja2 常用语法{{ 变量 }} {% if 条件 %} ... {% endif %} {% for item in items %} ... {% endfor %}4. 静态文件CSS / JS / 图片目录结构project/ ├── static/ │ ├── css/ │ │ └── style.css │ └── js/ │ └── main.jsHTML 中引用link relstylesheet href{{ url_for(static, filenamecss/style.css) }} script src{{ url_for(static, filenamejs/main.js) }}/script五、JSON API前后端分离必备from flask import jsonify app.route(/api/users) def api_users(): users [ {id: 1, name: 张三}, {id: 2, name: 李四} ] return jsonify(users)访问http://127.0.0.1:5000/api/users返回的是标准 JSON。六、重定向与错误处理from flask import redirect, url_for, abort app.route(/redirect) def redirect_demo(): return redirect(url_for(index)) app.route(/error) def error_demo(): abort(404) app.errorhandler(404) def page_not_found(e): return 页面不见了404, 404七、项目结构推荐的中型结构flask_project/ ├── app.py # 入口 ├── config.py # 配置 ├── requirements.txt # 依赖 ├── models/ # 数据模型 ├── routes/ # 路由拆分 ├── templates/ # HTML └── static/ # 静态资源示例app.pyfrom flask import Flask from routes.user import user_bp app Flask(__name__) app.register_blueprint(user_bp) if __name__ __main__: app.run(debugTrue)routes/user.pyfrom flask import Blueprint user_bp Blueprint(user, __name__, url_prefix/user) user_bp.route(/username) def profile(username): return f用户{username}Blueprint蓝图​ 是 Flask 拆分大型项目的核心工具。八、数据库入门Flask SQLite安装扩展pip install flask-sqlalchemy示例from flask import Flask from flask_sqlalchemy import SQLAlchemy app Flask(__name__) app.config[SQLALCHEMY_DATABASE_URI] sqlite:///data.db db SQLAlchemy(app) class User(db.Model): id db.Column(db.Integer, primary_keyTrue) username db.Column(db.String(80), uniqueTrue, nullableFalse) with app.app_context(): db.create_all()九、常见 Flask 扩展必知功能扩展ORMFlask-SQLAlchemy表单Flask-WTF登录Flask-Login迁移Flask-Migrate跨域Flask-CORS接口文档Flask-RESTful / Flask-OpenAPI十、调试 部署基础1. Debug 模式app.run(debugTrue)修改代码会自动重启报错页面更友好仅限开发环境。2. 生产环境概念不用app.run()使用Gunicorn / uWSGI Nginx关闭 debug使用环境变量管理配置十一、一个完整小项目示例To-Do List你可以做一个/展示所有待办事项/add添加事项/delete/id删除事项使用 SQLite 存储使用 Bootstrap 美化页面如果你愿意我可以一步一步带你写这个 To-Do 项目从建表到部署。十二、下一步怎么学建议你按这个顺序来✅ 跑通 Hello World✅ 学会路由 模板✅ 写一个 CRUD 小项目增删改查✅ 引入数据库✅ 拆分成 Blueprint✅ 学习 RESTful API✅ 学习部署云服务器 / Docker如果你告诉我 你是零基础 / 有一点 Python 基础 想做网站 / API / 后台管理系统 / 爬虫接口⏱️ 每天能投入多少时间我可以给你定制一个7 天或 14 天的 Flask 学习计划每天只学一点但能做出东西。