显示页面讨论过去修订反向链接回到顶部 本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。 ====== 第三十九章:Web应用项目 ====== ===== 本章目标 ===== 完成本章学习后,你将能够: * 设计Web应用架构 * 实现用户认证 * 集成数据库 * 部署Web应用 ===== 项目结构 ===== <code> myapp/ ├── app/ │ ├── __init__.py │ ├── models.py │ ├── views.py │ ├── forms.py │ └── templates/ ├── config.py ├── requirements.txt └── run.py </code> ===== 用户认证 ===== <code python> from flask import Flask, request, session, redirect, url_for from werkzeug.security import generate_password_hash, check_password_hash app = Flask(__name__) app.secret_key = 'secret-key' # 注册 @app.route('/register', methods=['POST']) def register(): username = request.form['username'] password = generate_password_hash(request.form['password']) # 保存到数据库 return redirect(url_for('login')) # 登录 @app.route('/login', methods=['POST']) def login(): username = request.form['username'] password = request.form['password'] user = get_user(username) if user and check_password_hash(user.password, password): session['user_id'] = user.id return redirect(url_for('dashboard')) return 'Login failed' # 登出 @app.route('/logout') def logout(): session.pop('user_id', None) return redirect(url_for('index')) </code> ===== 数据库集成 ===== <code python> from flask_sqlalchemy import SQLAlchemy app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db' db = SQLAlchemy(app) class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True) password = db.Column(db.String(120)) </code> ===== 本章实战 ===== 1. 构建Todo应用 2. 构建博客系统 3. 构建电商网站 下一章:[[python_course:chapter40|第四十章:自动化脚本]] 登录 Detach Close 该主题尚不存在 您访问的页面并不存在。如果允许,您可以使用创建该页面按钮来创建它。 python/chapter39.txt 最后更改: 2026/04/09 14:43由 张叶安 登录