zoukankan      html  css  js  c++  java
  • 二十九、制作首页的显示列表

    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)
  • 相关阅读:
    js的包装对象
    js-原型
    js面向对象初识
    css3-3d
    用css制作三角形
    清浮动
    IE67下浮动元素margin-bottom值失效问题
    css圆角
    Use Memory Layout from Target Dialog Scatter File
    Qt QSting
  • 原文地址:https://www.cnblogs.com/Green-/p/7941262.html
Copyright © 2011-2022 走看看