• 制作首页的显示列表。


    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 import Flask
    from flask_sqlalchemy import SQLAlchemy
    import config
    from functools import wraps
    from datetime import datetime
    
    app = Flask(__name__)
    #app.config['SECRET_KEY'] = '1234567'
    app.config.from_object(config)
    db = SQLAlchemy(app)
    
    class User(db.Model):
        __tablename__ = 'user_test'
        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))
        tel = 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)
        creat_time = db.Column(db.DateTime,default=datetime.now)
        author_id = db.Column(db.Integer,db.ForeignKey('user_test.id'))
        author = db.relationship('User',backref=db.backref('question'))
    
    #db.create_all()
    
    
    #user = User(username = 'mis1',password = '124', nickname='wk')
    #db.session.add(user)
    #db.session.commit()
    
    
    
    #user = User.query.filter(User.username == 'mis1234').first()
    #print(user)
    #print(user.id,user.username)
    
    
    #user = User.query.filter(User.username == 'mis1234').first()
    #user.password = '123'
    #db.session.commit()
    
    
    # user = User(username = 'wkkkkkk',password = '123456', nickname='kk')
    # db.session.add(user)
    # db.session.commit()
    
    
    #user = User.query.filter(User.username == 'mis1234').first()
    #db.session.delete(user)
    #db.session.commit()
    
    
    
    
    @app.route('/')
    def index():
        context={
            'questions':'python20171201'
        }
        return render_template('index.html',**context)
    
    
    @app.route('/detail/<question_id>')
    def detail(question_id):
        return render_template('detail.html',ques = question_id)
    
    
    
    
    
    
    
    @app.route('/login/',methods=['GET','POST'])
    def login():
        if request.method == 'GET':
            return render_template('login.html')
        else:
            usern = request.form.get('uname')
            passw = request.form.get('upass')
            user = User.query.filter(User.username==usern).first()
            if user:
                if user.password == passw:
                    session['user'] = usern;
                    return redirect(url_for('index'))
                else:
                    return 'password error!'
            else:
                return 'username is not exister!'
    
    
    
    @app.route('/register/',methods=['GET','POST'])
    def register():
        if request.method =='GET':
            return  render_template('register.html')
        else:
            usern = request.form.get('uname')
            teln = request.form.get('number')
            passw = request.form.get('upass')
            user = User.query.filter(User.username==usern).first()
            if user:
                return 'username existed'
            else:
                user1= User(username=usern,tel=teln,password=passw)
                db.session.add(user1)
                db.session.commit()
                return redirect(url_for('login'))
    
    
    @app.context_processor
    def mycontext():
        usern = session.get('user')
        if usern:
            return{'username':usern}
        else:
            return {}
    
    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.method =='GET':
            return  render_template('question.html')
        else:
            biaoti = request.form.get('biaoti')
            detail = request.form.get('detail')
            author_id = User.query.filter(User.username==session.get('user')).first().id
            question = Question(title=biaoti,detail=detail,author_id=author_id)
    
            db.session.add(question)
            db.session.commit()
        return redirect(url_for('index'))
    
    
    if __name__ == '__main__':
        app.run(debug=True)
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>首页</title>
        <link rel="stylesheet" type="text/css" href="{{ url_for('static',filename='css/index.css')}}">
    </head>
    <body>
    <a href="http://127.0.0.1:5000/login/">login</a>
    <a href="{{ url_for('register')}}">register</a>
    <a id="href" href="{{ url_for('question') }}">question</a>
    
    <p>{{ username }}contextx</p>
    
    
    <div class="list-container">
                <ul class="news-list">
    {#                <li style="padding-left: 0px; padding-right: 10px; box-shadow: rgba(0, 0, 0, 0.5) 0px 0px 0px 0px;">#}
    {#                <a href="#">username#}
    {#                    <div class="news-list-thumb"><img src=""></div>#}
    {#                    <div class="news-list-text">#}
    {#                        <div class="news-list-title" style="">迪丽热巴</div>#}
    {#                        <div class="news-list-description">女神</div>#}
    {#                        <div class="news-list-info">2017-11-24 三生三世</div>#}
    {#                        <p>detail{{ questions }}</p>#}
    {#                    </div>#}
    {#                </a>#}
    {#                </li>#}
    
    
                    <li style="padding-left: 0px; padding-right: 10px; box-shadow: rgba(0, 0, 0, 0.5) 0px 0px 0px 0px;">
                        <span class="glyphicon glyphicon-leaf" aria-hidden="true"></span>
                        <a href="#">username</a>
                        <br>
                        <a href="#">title</a>
                        <span class="badgs">creat_time</span>
                        <p>detail{{ questions }}</p>
                    </li>
    
    
    
                </ul>
    </div
  • 相关阅读:
    Jvascript方法
    Java高效读取大文件(转)
    RandomAccessFile实时读取大文件(转)
    Java中的逆变与协变 专题
    Docker系列之(一):10分钟玩转Docker(转)
    Redis系列之(一):10分钟玩转Redis(转)
    BDB (Berkeley DB)数据库简单介绍(转载)
    JAVA的extends使用方法
    计算机视觉领域的一些牛人博客,超有实力的研究机构等的站点链接
    中国大推力矢量发动机WS15 跨入 世界先进水平!
  • 原文地址:https://www.cnblogs.com/123hyf/p/7954506.html
Copyright © 2020-2023  润新知