创建一个基于flask位框架的,包含用户管理和博客管理的简易博客系统的代码
时间: 2024-05-14 18:16:49 浏览: 100
基于flask的简单博客系统.zip
好的,以下是一个基于 flask 框架的简易博客系统的代码:
```python
from flask import Flask, render_template, request, redirect, url_for
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///blog.db'
app.config['SECRET_KEY'] = 'secret-key-goes-here'
db = SQLAlchemy(app)
# 定义文章模型
class Article(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(250), nullable=False)
content = db.Column(db.Text, nullable=False)
def __repr__(self):
return '<Article %r>' % self.title
# 定义用户模型
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
password = db.Column(db.String(120), nullable=False)
def __repr__(self):
return '<User %r>' % self.username
# 定义博客首页路由
@app.route('/')
def index():
articles = Article.query.all()
return render_template('index.html', articles=articles)
# 定义文章详情页路由
@app.route('/article/<int:id>')
def article(id):
article = Article.query.get(id)
return render_template('article.html', article=article)
# 定义创建文章路由
@app.route('/article/create', methods=['GET', 'POST'])
def create_article():
if request.method == 'POST':
title = request.form.get('title')
content = request.form.get('content')
article = Article(title=title, content=content)
db.session.add(article)
db.session.commit()
return redirect(url_for('index'))
return render_template('create_article.html')
# 定义用户注册路由
@app.route('/register', methods=['GET', 'POST'])
def register():
if request.method == 'POST':
username = request.form.get('username')
email = request.form.get('email')
password = request.form.get('password')
user = User(username=username, email=email, password=password)
db.session.add(user)
db.session.commit()
return redirect(url_for('index'))
return render_template('register.html')
# 定义用户登录路由
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
email = request.form.get('email')
password = request.form.get('password')
user = User.query.filter_by(email=email, password=password).first()
if user:
return redirect(url_for('index'))
return render_template('login.html')
if __name__ == '__main__':
db.create_all()
app.run()
```
在这个代码中,我们定义了两个模型:Article 和 User。其中 Article 模型用来存储博客文章的标题和内容,User 模型用来存储用户的用户名、邮箱和密码。我们还定义了一些路由,包括博客首页、文章详情页、创建文章、用户注册和用户登录。对于每个路由,我们都定义了对应的 HTML 模板,其中包括表单、输入框等元素。需要注意的一点是,在用户登录的路由中,我们使用了数据库查询语句来检查用户输入的邮箱和密码是否正确。
当然,由于我们并没有使用任何的登录验证需要对注册、登陆做进一步的扩展。如果您有其他要求或需要进一步的帮助,请随时告诉我。
阅读全文