1.在首页添加显示问答的列表,并定义好相应的样式。
无序列表
<ul >
<li>Coffee</li>
<li>Tea</li>
<li>Milk</li>
</ul>
<ul class="list-group"> <li class="list-group-item" > <a class="author" href="">{{ user }}</a> <br> <a class="title" href="">标题</a><br> <span >发布时间 </span> <p class="abstract">文章内容 </p> </li> </ul>
2. 用字典向index.html传递参数。
from flask import Flask, render_template,redirect,url_for,request,session from flask_sqlalchemy import SQLAlchemy from functools import wraps from datetime import datetime import config app = Flask(__name__) app.config.from_object(config) db = SQLAlchemy(app) class User(db.Model): __tablename__ = 'user' id = db.Column(db.Integer, primary_key=True, autoincrement=True) username = db.Column(db.String(20), nullable=False) password = db.Column(db.String(20), nullable=False) nickname = db.Column(db.String(20)) class Question(db.Model): __tablename__='question' id = db.Column(db.Integer,primary_key=True,autoincrement=True) title = db.Column(db.String(100),nullable=False) detail = db.Column(db.Text,nullable=False) create_time = db.Column(db.DateTime,default=datetime.now()) author_id = db.Column(db.Integer,db.ForeignKey('user.id')) author = db.relationship('User',backref=db.backref('question')) db.create_all() @app.route('/') def index(): #用字典向index.html传递参数 context={ 'questions':'Why so lonely' } return render_template('index.html',**context) @app.route('/login/',methods=['GET','POST']) def login(): if request.method == "GET": return render_template("login.html") else: username = request.form.get("username") password = request.form.get("password") user = User.query.filter(User.username == username).first() if user: if user.password == password: session['user'] = username return redirect(url_for('login')) else: return '密码错误' else: return '用户名不存在' @app.context_processor def mycontext(): username = session.get('user') if username: return{'username':username} else: return{} @app.route('/logout/') def logout(): session.clear() return redirect(url_for('base')) @app.route('/regist/',methods=['GET','POST']) def regist(): if request.method == 'GET': return render_template("regist.html") else: username = request.form.get("username") password = request.form.get("password") user = User.query.filter(User.username == username).first() if user: return 'username existed.' else: user = User(username=username, password=password) db.session.add(user) #数据库,添加操作 db.session.commit() return redirect(url_for('login')) #发布前需要登录,定义装饰器 def loginFirst(func): @wraps(func) def wrapper(*args,**kwargs): if session.get('user'): return func(*args,**kwargs) else: return redirect(url_for('login')) return wrapper @app.route('/question/',methods=['GET','POST']) @loginFirst def question(): if request.methof=='GET': return render_template('question.html') else: title=request.form.get('title') detail=request.form.get('detail') author_id=User.query.filter(User.username==session.get('user')).first().id question=Question(title=title,detail=detail,author_id=author_id) db.session.ass(question) db.session.commit() return redirect(url_for('index')) if __name__ == '__main__': app.run(debug=True) import os SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:@127.0.0.1:3306/mis1201?charset=utf8' SQLALCHEMY_TRACK_MODIFICATIONS = False SECRET_KEY = os.urandom(24)