• 制作首页的显示列表


    1. 在首页添加显示问答的列表,并定义好相应的样式。

    无序列表

    <ul >

      <li>Coffee</li>

      <li>Tea</li>

      <li>Milk</li>

    </ul>

    2. 用字典向index.html传递参数。

    from flask import Flask, render_template,request,redirect,url_for,session
    from flask_sqlalchemy import SQLAlchemy
    import config
    from functools import wraps
    from datetime import datetime
    
    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(100), nullable=False)
        password= db.Column(db.String(500), nullable=False)
    
    
    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 base():
        return render_template('base.html')
    
    @app.route('/zc/',methods=['GET','POST'])
    def zc():
        if request.method == 'GET':
            return render_template('zc.html')
        else:
            username = request.form.get('username')  # 获取form中的数据
            password = request.form.get('password')  # 获取form中的数据
            user = User.query.filter(User.username ==username).first()
            if user:
                return'用户已存在'
            else:
                user = User(username = username,password=password)
                db.session.add(user)
                db.session.commit()
                return redirect(url_for('denglu'))
    
    @app.route('/dl/',methods=['GET','POST'])
    def dl():
        if request.method=='GET':
            return render_template('dl.html')
        else:
            username = request.form.get('username')
            password = request.form.get('password')
    
            user=User.query.filter(User.username==username).first()
            #判断用户名是否存在
            if user:
                session['user']=username
                session.permanent=True
                if user.password==password:
                    return redirect(url_for('shouye'))
                else:
                    return '密码错误'
            else:
                return '此用户不存在'
    
    @app.context_processor
    def mycontext():
        usern=session.get('user')
        if usern:
            return {'username':usern}
        else:
            return{}
    
    @app.route('/logout/')
    def logout():
        session.clear();
        return redirect(url_for('shouye'))
    
    def log(func): #参数是函数
        @wraps(func)
        def wrappers(*args,** kwargs): #定义个函数将其返回
            if session.get('user'):
                return func(*args,**kwargs)
            else:
                return redirect(url_for('denglu'))
        return wrappers #返回一个函数
    
    
    @app.route('/hh/')
    def hh():
        context = {
    
            'title':'论盟主的死忠粉是怎样炼成的',
            'detail':'始于颜值,陷于才华,忠于人品?最重要的当然是颜值啦!',
    
    
        }
        return render_template('hh.html',**context)
    
    @app.route('/wenda/',methods=['GET','POST'])
    @log
    def wenda():
        if request.method=='GET':
            return render_template('wenda.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.add(question)#保存到数据库
            db.session.commit()#提交
        return redirect(url_for('hh'))#跳转
    
    if __name__ == '__main__':
        app.run(debug=True)
    {% extends'base.html' %}
    {% block title %}
        首页
    {% endblock %}
    {% block head %}
        <link rel="stylesheet" href="{{ url_for('static',filename='css/hh.css')}}" type="text/css">
    {% endblock %}
    {% block main %}
    <br><br><br>
    <div class="box">
            <ul class="list-group">
                <li class="list-group-item">
                    <a href="#">{{ username }}</a><br>
                    <a href="#">问题:{{ title }}</a><br>
                    <a href="#">详情:{{ detail }}</a>
                    <span class="badge" style="margin-left: 60%">{{ create_time }}发布时间</span>
    
                </li>
                <br>
    
            </ul>
    
        </div>
    <div class="all">
        <div class="img">
            <a href="">
                <img src="http://img2.touxiang.cn/file/20160601/78050c8c02997f95d03bc5c8041b5131.jpg"></a>
            <div class="wenzi1"><a  href="">一念无明</a></div>
        </div>
        <div class="img">
            <a href="">
                <img src="http://img2.touxiang.cn/file/20160601/9144c9b9c9bc63150d9aa5aac727b392.jpg"></a>
            <div class="wenzi2"><a href="">美人为馅</a></div>
        </div>
        <div class="img">
            <a href="">
                <img src="http://img2.touxiang.cn/file/20160504/b1e6d1af8b96f4506d4a8acc9a1182f7.jpg"></a>
            <div class="wenzi3"><a href="">公子如玉</a></div>
        </div>
        <div class="img">
            <a href="">
                <img src="http://img2.touxiang.cn/file/20160601/99473e3887d3e8c6e8a9015e134c3307.jpg"></a>
            <div class="wenzi4"><a href="">刀剑无眼</a></div>
        </div>
    </div>
    
    
    {% endblock %}
  • 相关阅读:
    SQL语句熟悉
    CSS3 attribute
    轮播器
    PHP 邮箱操作的Action
    Hole puncher Show Picture
    力扣算法——133.CloneGraph【M】
    力扣算法——134GasStation【M】
    力扣算法——135Candy【H】
    力扣算法——136SingleNumber【E】
    力扣算法——137SingleNumberII【M】
  • 原文地址:https://www.cnblogs.com/00js/p/7944502.html
Copyright © 2020-2023  润新知