python bbs论坛_Python之路,Day17 - 分分钟做个BBS论坛
时间: 2023-12-14 20:40:11 浏览: 172
在 Day17 中,我们可以通过 Flask 框架快速搭建一个 BBS 论坛。具体步骤如下:
1. 创建 Flask 应用
```python
from flask import Flask
app = Flask(__name__)
```
2. 创建数据库
```python
from flask_sqlalchemy import SQLAlchemy
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///bbs.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
```
3. 创建数据库模型
```python
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(20), unique=True, nullable=False)
password = db.Column(db.String(20), nullable=False)
class Post(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(100), nullable=False)
content = db.Column(db.Text, nullable=False)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
```
4. 创建路由和视图函数
```python
@app.route('/')
def index():
posts = Post.query.all()
return render_template('index.html', posts=posts)
@app.route('/post/<int:post_id>')
def post(post_id):
post = Post.query.get(post_id)
return render_template('post.html', post=post)
@app.route('/new_post', methods=['GET', 'POST'])
def new_post():
if request.method == 'POST':
title = request.form['title']
content = request.form['content']
user_id = 1 # 假设当前用户为 id 为 1 的用户
post = Post(title=title, content=content, user_id=user_id)
db.session.add(post)
db.session.commit()
return redirect('/')
return render_template('new_post.html')
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
user = User.query.filter_by(username=username, password=password).first()
if user:
session['user_id'] = user.id
return redirect('/')
else:
flash('用户名或密码错误')
return render_template('login.html')
@app.route('/logout')
def logout():
session.pop('user_id', None)
return redirect('/')
```
5. 创建 HTML 模板
创建 index.html、post.html、new_post.html、login.html 四个模板文件,并且使用 jinja2 模板引擎渲染数据。
6. 运行应用
```python
if __name__ == '__main__':
app.run()
```
以上就是快速搭建 BBS 论坛的主要步骤,当然在实际应用中还需要考虑更多细节问题,比如用户认证、数据校验、页面美化等。
阅读全文