每日打卡day6
发布人:shili8
发布时间:2025-01-09 17:19
阅读次数:0
**每日打卡 Day6**
**主题:** 使用 Python 和 Flask 构建一个简单的博客系统**目标:** 在本文中,我们将使用 Python 和 Flask 框架构建一个简单的博客系统。我们将实现以下功能:
* 用户注册和登录* 博客文章管理(创建、编辑、删除)
* 文章评论系统**环境准备**
首先,我们需要安装必要的依赖包。我们将使用 pip 来安装 Flask 和其他相关包。
bashpip install flask flask_sqlalchemy flask_wtf
接下来,我们需要配置我们的数据库。我们将使用 SQLite 作为我们的数据库。
from flask import Flaskfrom flask_sqlalchemy import SQLAlchemyapp = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///blog.db' db = SQLAlchemy(app)
**用户注册和登录**
首先,我们需要定义一个 User 模型来存储用户信息。
class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(64), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) password = db.Column(db.String(128), nullable=False) def __repr__(self): return '' % self.username
接下来,我们需要定义一个 RegisterForm 来处理用户注册请求。
from flask_wtf import FlaskFormfrom wtforms import StringField, PasswordFieldfrom wtforms.validators import DataRequiredclass RegisterForm(FlaskForm): username = StringField('username', validators=[DataRequired()]) email = StringField('email', validators=[DataRequired()]) password = PasswordField('password', validators=[DataRequired()]) @app.route('/register', methods=['GET', 'POST']) def register(): form = RegisterForm() if form.validate_on_submit(): user = User(username=form.username.data, email=form.email.data, password=form.password.data) db.session.add(user) db.session.commit() return '注册成功!' return render_template('register.html', form=form)
**博客文章管理**
首先,我们需要定义一个 Article 模型来存储博客文章信息。
class Article(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(128), nullable=False) content = db.Column(db.Text, nullable=False) def __repr__(self): return '' % self.title
接下来,我们需要定义一个 ArticleForm 来处理博客文章创建和编辑请求。
class ArticleForm(FlaskForm): title = StringField('title', validators=[DataRequired()]) content = TextAreaField('content', validators=[DataRequired()]) @app.route('/article/create', methods=['GET', 'POST']) def create_article(): form = ArticleForm() if form.validate_on_submit(): article = Article(title=form.title.data, content=form.content.data) db.session.add(article) db.session.commit() return '创建成功!' return render_template('create_article.html', form=form) @app.route('/article/edit/<int:article_id>', methods=['GET', 'POST']) def edit_article(article_id): article = Article.query.get_or_404(article_id) form = ArticleForm(obj=article) if form.validate_on_submit(): article.title = form.title.data article.content = form.content.data db.session.commit() return '编辑成功!' return render_template('edit_article.html', form=form, article=article) @app.route('/article/delete/<int:article_id>') def delete_article(article_id): article = Article.query.get_or_404(article_id) db.session.delete(article) db.session.commit() return '删除成功!'
**文章评论系统**
首先,我们需要定义一个 Comment 模型来存储博客文章评论信息。
class Comment(db.Model): id = db.Column(db.Integer, primary_key=True) article_id = db.Column(db.Integer, db.ForeignKey('article.id'), nullable=False) content = db.Column(db.String(128), nullable=False) def __repr__(self): return '' % self.content
接下来,我们需要定义一个 CommentForm 来处理博客文章评论创建请求。
class CommentForm(FlaskForm): content = StringField('content', validators=[DataRequired()]) @app.route('/article/<int:article_id>/comment', methods=['GET', 'POST']) def create_comment(article_id): article = Article.query.get_or_404(article_id) form = CommentForm() if form.validate_on_submit(): comment = Comment(article=article, content=form.content.data) db.session.add(comment) db.session.commit() return '评论成功!' return render_template('create_comment.html', form=form, article=article)
**总结**
在本文中,我们使用 Python 和 Flask 框架构建了一个简单的博客系统。我们实现了用户注册和登录、博客文章管理(创建、编辑、删除)以及文章评论系统。