簡體   English   中英

Bootstrap 選項卡中的 Python/Flask For 循環(嵌套列表)

[英]Python/Flask For Loop ( nested List) in Bootstrap Tab

我目前正面臨一個涉及到選項卡列表中的字典的問題。 字典中鍵“Schnitt_SchnittVF”的值表示選項卡名稱。

我找到了一些例子,但並沒有真正幫助我讓這件事發揮作用。

下面我從 html 文件和嵌套字典的示例列表中發布了我的模板代碼。

這是 HTML/Jinja 片段

<div class="col-xl-4 col-lg-12 task-detail-left">
                                <div class="card">
                                    <div class="card-header">
                                        <h4>Schnittstellen von  {{ rawdataCust[0]['CustMain_Kundenname_Intern'] }} <a href="/index"  style="float: right;" class="btn btn-primary btn-sm" role="button">Bearbeiten</a></h4>
                                    </div>
                                    <div>
                                        <ul class="nav nav-tabs" id="myTab" role="tablist">
                                            {% for row in rawdataSchnitt %}
                                                {% set schnittVF = row['Schnitt_SchnittVF']|string %}
                                                {% set schnitTabName = row['Schnitt_SchnittVF'] ~ "-tab"|string %}
                                                {% set schnittLink = '#' ~ row['Schnitt_SchnittVF']|string %}
                                                <li class="nav-item">
                                                    <a class="nav-link active text-uppercase" id="{{schnittVF}}-tab" data-toggle="tab" href="{{ schnittLink }}" role="tab" aria-controls="{{ schnittVF }}" aria-selected="true">{{ schnittVF }}</a>
                                                </li>
                                            {% endfor %}
                                        </ul>
                                        {% for row in rawdataSchnitt %}
                                            {% set schnittVF = row['Schnitt_SchnittVF']|string %}
                                            {% set schnitTabName = row['Schnitt_SchnittVF'] ~ "-tab"|string %}
                                            <div class="tab-content" id="{{schnitTabName}}">
                                                <div class="tab-pane fade show active" id="{{ schnittVF }}" role="tabpanel" aria-labelledby="{{schnittVF}}-tab">
                                                    <p class="mb-0">
                                                        {{row["Schnitt_AGSIntern"]}}
                                                    </p>
                                                    <p>
                                                        {{row["Schnitt_GVVName"]}}
                                                    </p>
                                                    <p>
                                                        {{row["Schnitt_SchnittVF"]}}
                                                    </p>
                                                    <p>
                                                        {{row["Schnitt_SchnittWerk"]}}
                                                    </p>
                                                    <p>
                                                        {{row["Schnitt_UserExit"]}}
                                                    </p>
                                                    <p>
                                                        {{row["Schnitt_gueltigAb"]}}
                                                    </p>
                                                    <p>
                                                        {{row["Schnitt_gueltigBis"]}}
                                                    </p>
                                                </div>
                                            </div>                                            
                                        {% endfor %}
                                    </div>
                                </div>
                            </div>

這是帶有嵌套字典的列表的示例:

 [ { "Schnitt_AGSIntern": "Some_NUMBER", "Schnitt_GVVName": null, "Schnitt_Kundenname_Intern": "Some_NAME", "Schnitt_Mahnst": null, "Schnitt_Mig2Vf": null, "Schnitt_ModulREFX": null, "Schnitt_ModulSoJuHKR": "nein", "Schnitt_SchnittBemerkung": null, "Schnitt_SchnittID": 847, "Schnitt_SchnittMand": "650", "Schnitt_SchnittRueck": "nein", "Schnitt_SchnittSystem": "Production_SAP", "Schnitt_SchnittVF": "NOT_SAP", "Schnitt_SchnittWerk": null, "Schnitt_UserExit": null, "Schnitt_gueltigAb": "02-Jan-00", "Schnitt_gueltigBis": null }, { "Schnitt_AGSIntern": "Some_NUMBER", "Schnitt_GVVName": null, "Schnitt_Kundenname_Intern": "Some_NAME", "Schnitt_Mahnst": null, "Schnitt_Mig2Vf": null, "Schnitt_ModulREFX": null, "Schnitt_ModulSoJuHKR": "nein", "Schnitt_SchnittBemerkung": null, "Schnitt_SchnittID": 848, "Schnitt_SchnittMand": "650", "Schnitt_SchnittRueck": "nein", "Schnitt_SchnittSystem": "Test_SAP", "Schnitt_SchnittVF": "NOT_SAP", "Schnitt_SchnittWerk": null, "Schnitt_UserExit": null, "Schnitt_gueltigAb": "02-Jan-00", "Schnitt_gueltigBis": null }, { "Schnitt_AGSIntern": "Some_NUMBER", "Schnitt_GVVName": null, "Schnitt_Kundenname_Intern": "Some_NAME", "Schnitt_Mahnst": "2", "Schnitt_Mig2Vf": null, "Schnitt_ModulREFX": "nein", "Schnitt_ModulSoJuHKR": "ja", "Schnitt_SchnittBemerkung": null, "Schnitt_SchnittID": 849, "Schnitt_SchnittMand": "650", "Schnitt_SchnittRueck": "ja", "Schnitt_SchnittSystem": "Production_SAP", "Schnitt_SchnittVF": "SAP", "Schnitt_SchnittWerk": null, "Schnitt_UserExit": null, "Schnitt_gueltigAb": "01-Jan-07", "Schnitt_gueltigBis": null }, { "Schnitt_AGSIntern": "Some_NUMBER", "Schnitt_GVVName": null, "Schnitt_Kundenname_Intern": "Some_NAME", "Schnitt_Mahnst": "2", "Schnitt_Mig2Vf": null, "Schnitt_ModulREFX": "nein", "Schnitt_ModulSoJuHKR": "ja", "Schnitt_SchnittBemerkung": null, "Schnitt_SchnittID": 850, "Schnitt_SchnittMand": "650", "Schnitt_SchnittRueck": "ja", "Schnitt_SchnittSystem": "Test_SAP", "Schnitt_SchnittVF": "SAP", "Schnitt_SchnittWerk": null, "Schnitt_UserExit": null, "Schnitt_gueltigAb": "01-Jan-07", "Schnitt_gueltigBis": null } ]

這是為這條路線截取的 routes.py :

 @blueprint.route('/cstdetail/<cstAGS>') @login_required def cstDetails(cstAGS): urlSchnitt = 'http://someServer:5000/cstSchnitt' + '/' + cstAGS try: uResponseSchnitt = requests.get(urlSchnitt) except requests.ConnectionError: return "Connection Error" JresponseSchnitt = uResponseSchnitt.text rawdataSchnitt = json.loads(JresponseSchnitt) #print(rawdata) return render_template('customer-detail.html', rawdataSchnitt =rawdataSchnitt)

有人可以幫我解決這個問題,因為我剛剛迷失了這個。 根據我的理解,它應該可以工作,但我可能只是愚蠢的地獄......所以提前謝謝:)。

太長

首先,您沒有使用下面的選項卡名稱代碼。 我認為您應該刪除該代碼,因為在每個“for”步驟中,(tabName)代碼一次又一次地聲明。

                                <ul class="nav nav-tabs" id="myTab" role="tablist">
                                    {% for row in rawdataSchnitt %}
                                        {% set schnittVF = row['Schnitt_SchnittVF']|string %}
                                        {% set schnitTabName = row['Schnitt_SchnittVF'] ~ "-tab"|string %}
                                        {% set schnittLink = '#' ~ row['Schnitt_SchnittVF']|string %}
                                        <li class="nav-item">
                                            <a class="nav-link active text-uppercase" id="{{schnittVF}}-tab" data-toggle="tab" href="{{ schnittLink }}" role="tab" aria-controls="{{ schnittVF }}" aria-selected="true">{{ schnittVF }}</a>
                                        </li>
                                    {% endfor %}
                                </ul>

我認為你應該在那里解釋你的變量類型(像這樣 =>: <int:number> ):

@blueprint.route('/cstdetail/<cstAGS>')

如果您聲明名為 xy 的列表:

 [
      {
        "Schnitt_AGSIntern": "Some_NUMBER", 
        "Schnitt_GVVName": 1, 
        "Schnitt_Kundenname_Intern": "Some_NAME", 
        "Schnitt_Mahnst": 1, 
        "Schnitt_Mig2Vf": 1, 
        "Schnitt_ModulREFX": 1, 
        "Schnitt_ModulSoJuHKR": "nein", 
        "Schnitt_SchnittBemerkung": 1, 
        "Schnitt_SchnittID": 847, 
        "Schnitt_SchnittMand": "650", 
        "Schnitt_SchnittRueck": "nein", 
        "Schnitt_SchnittSystem": "Production_SAP", 
        "Schnitt_SchnittVF": "NOT_SAP", 
        "Schnitt_SchnittWerk": 1, 
        "Schnitt_UserExit": 1, 
        "Schnitt_gueltigAb": "02-Jan-00", 
        "Schnitt_gueltigBis": 1
      }, 
      {
        "Schnitt_AGSIntern": "Some_NUMBER", 
        "Schnitt_GVVName": 1, 
        "Schnitt_Kundenname_Intern": "Some_NAME", 
        "Schnitt_Mahnst": 1, 
        "Schnitt_Mig2Vf": 1, 
        "Schnitt_ModulREFX": 1, 
        "Schnitt_ModulSoJuHKR": "nein", 
        "Schnitt_SchnittBemerkung": 1, 
        "Schnitt_SchnittID": 848, 
        "Schnitt_SchnittMand": "650", 
        "Schnitt_SchnittRueck": "nein", 
        "Schnitt_SchnittSystem": "Test_SAP", 
        "Schnitt_SchnittVF": "NOT_SAP", 
        "Schnitt_SchnittWerk": 1, 
        "Schnitt_UserExit": 1, 
        "Schnitt_gueltigAb": "02-Jan-00", 
        "Schnitt_gueltigBis": 1
      }, 
      {
        "Schnitt_AGSIntern": "Some_NUMBER", 
        "Schnitt_GVVName": 1, 
        "Schnitt_Kundenname_Intern": "Some_NAME", 
        "Schnitt_Mahnst": "2", 
        "Schnitt_Mig2Vf": 1, 
        "Schnitt_ModulREFX": "nein", 
        "Schnitt_ModulSoJuHKR": "ja", 
        "Schnitt_SchnittBemerkung": 1, 
        "Schnitt_SchnittID": 849, 
        "Schnitt_SchnittMand": "650", 
        "Schnitt_SchnittRueck": "ja", 
        "Schnitt_SchnittSystem": "Production_SAP", 
        "Schnitt_SchnittVF": "SAP", 
        "Schnitt_SchnittWerk": 1, 
        "Schnitt_UserExit": 1, 
        "Schnitt_gueltigAb": "01-Jan-07", 
        "Schnitt_gueltigBis": 1
      }, 
      {
        "Schnitt_AGSIntern": "Some_NUMBER", 
        "Schnitt_GVVName": 1, 
        "Schnitt_Kundenname_Intern": "Some_NAME", 
        "Schnitt_Mahnst": "2", 
        "Schnitt_Mig2Vf": 1, 
        "Schnitt_ModulREFX": "nein", 
        "Schnitt_ModulSoJuHKR": "ja", 
        "Schnitt_SchnittBemerkung": 1, 
        "Schnitt_SchnittID": 850, 
        "Schnitt_SchnittMand": "650", 
        "Schnitt_SchnittRueck": "ja", 
        "Schnitt_SchnittSystem": "Test_SAP", 
        "Schnitt_SchnittVF": "SAP", 
        "Schnitt_SchnittWerk": 1, 
        "Schnitt_UserExit": 1, 
        "Schnitt_gueltigAb": "01-Jan-07", 
        "Schnitt_gueltigBis": 1
      }
    ]

如果要獲取列表項和項值:

    {% for i in xy %}
    {% set item_key = i['Schnitt_AGSIntern'] %}
    
    ...

    <p> item_key </>
    {% endfor %}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM