【问题标题】:Need to fetch Values from Date table related with User Table需要从与用户表相关的日期表中获取值
【发布时间】:2020-03-24 11:29:32
【问题描述】:

我有 2 个表,一个用户表和另一个日期表。

Date 包含具有外键用户 id 的用户申请的所有叶子。

PFB型号代码:

class User(db.Model,UserMixin):
    id=db.Column(db.Integer,primary_key=True)
    username=db.Column(db.String(20),unique=True,nullable=False)
    email=db.Column(db.String(120),unique=True,nullable=False)
    profile_pic=db.Column(db.String(20),nullable=False,default="defaultdp.jpg")
    password=db.Column(db.String(60),nullable=False)

    datatime=db.relationship('Date',backref='date',lazy=True)

    def __repr__(self):
        return f"{self.username}"
class Date(db.Model):
    id=db.Column(db.Integer,primary_key=True)
    date_comp=db.Column(db.String(120),nullable=False)
    user_id=db.Column(db.Integer,db.ForeignKey('user.id'),nullable=False)

我创建了一条路线,有一个选择用户的表单,我可以根据该表单查询并获取该用户的休假日期。

class Appliedcomps(FlaskForm):
    usernames=QuerySelectField(
        'Associate Username',
        query_factory=lambda: models.User.query,
        get_label='id'
    )
    submit = SubmitField('Submit')
@app.route('/appliedcomps', methods=['GET', 'POST'])
def appliedcomps():
    form = Appliedcomps()
    uid=form.usernames.data
    if form.validate_on_submit:

        d=Date.query.filter_by(user_id=uid).all()

    return render_template('appliedcomps.html', form=form,d=d)
{% extends "layout.html"%}
{%block contents%}
<form method="GET" action="">
{{ form.usernames(class="form-control form-control-lg") }}

{{form.submit(class_="btn")}}

</form>
{%for u in d%}
    {{d.date_comp}}
{%endfor%}


{%endblock contents%}

这个查询不起作用,我没有得到任何日期显示。请指导我如何在烧瓶应用程序中从 2 个与 sqlalchemy 相关的表中获取值

【问题讨论】:

    标签: python database sqlite flask sqlalchemy


    【解决方案1】:

    您的问题很简单,您没有在模板中为项目提供 html 元素,而是调用整个对象 d 而不是迭代项目 u

    将模板更改为以下 .我为这些项目添加了一个未排序的列表元素。

    {% extends "layout.html"%}
    
    {%block contents%}
    
    <form method="GET" action="">
    {{ form.usernames(class="form-control form-control-lg") }}
    
    {{form.submit(class_="btn")}}
    
    </form>
    <ul>
    {%for u in d%}
        <li>{{u.date_comp}}</li>
    {%endfor%}
    </ul>
    
    {%endblock contents%}
    

    还将您的 GET 参数 getter 从 uid = form.usernames.data 更改为 uid = request.args.get('usernames'),确保您还在导入部分导入 from flask import request

    【讨论】:

      猜你喜欢
      • 2020-04-06
      • 1970-01-01
      • 1970-01-01
      • 2021-01-23
      • 1970-01-01
      • 2020-07-01
      • 1970-01-01
      • 2020-05-06
      • 2020-02-08
      相关资源
      最近更新 更多