当前位置:实例文章 » 其他实例» [文章]每日打卡day6

每日打卡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 框架构建了一个简单的博客系统。我们实现了用户注册和登录、博客文章管理(创建、编辑、删除)以及文章评论系统。

相关标签:算法数据结构
其他信息

其他资源

Top