亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當然應該有一種更簡潔的方式來編寫這個 Flask 路由代碼

當然應該有一種更簡潔的方式來編寫這個 Flask 路由代碼

明月笑刀無情 2023-03-30 10:24:43
我想在我的網頁頁腳部分編輯我的聯系人,我做了這個:在我的管理頁面我做了它所以我可以填寫一個表格,每個聯系人有 4 個輸入form.contact1 form.contact2 form.contact3 form.contact4......同時我制作了一個Contacts模型包含content柱子。我的路線代碼:@app.route('/admin/media-kontaktai', methods=['GET', 'POST'])@login_requireddef media_contacts():    form = MediaContactsForm()    if form.validate_on_submit():        rows = db.session.query(func.count(Contacts.id)).scalar()        for x in range(1, rows+1):            erace_contact = Contacts.query.get(x)            db.session.delete(erace_contact)            db.session.commit()        if form.contact1.data:            contact = Contacts(content=form.contact1.data)            db.session.add(contact)            db.session.commit()        if form.contact2.data:            contact = Contacts(content=form.contact2.data)            db.session.add(contact)            db.session.commit()        if form.contact3.data:            contact = Contacts(content=form.contact3.data)            db.session.add(contact)            db.session.commit()        if form.contact4.data:            contact = Contacts(content=form.contact4.data)            db.session.add(contact)            db.session.commit()        flash('Informacija atnaujinta!', 'success')        return redirect(url_for('media_contacts'))    elif request.method == 'GET':        contact1 = Contacts.query.get(1)        form.contact1.data = contact1.content        contact2 = Contacts.query.get(2)        form.contact2.data = contact2.content        contact3 = Contacts.query.get(3)        form.contact3.data = contact3.content        contact4 = Contacts.query.get(4)        form.contact4.data = contact4.content    contacts = Contacts.query.all()    return  render_template('a-media-kontaktai.html', title='Media ir kontaktai', form=form, contacts=contacts)
查看完整描述

2 回答

?
繁華開滿天機

TA貢獻1816條經驗 獲得超4個贊

這是未經測試的??纯此欠裼行В?/p>


for i in range (1,5):

    if form['contact' + str(i)].data:

        contact = Contacts(content=form['contact' + str(i)].data)

        db.session.add(contact)

        db.session.commit()


查看完整回答
反對 回復 2023-03-30
?
森欄

TA貢獻1810條經驗 獲得超5個贊

我還沒有測試過這個,但它應該可以工作,或者至少讓你走上正確的道路,了解如何進一步壓縮它。


@app.route('/admin/media-kontaktai', methods=['GET', 'POST'])

@login_required

def media_contacts():

    form = MediaContactsForm()


    if request.method == 'POST':

        if form.validate_on_submit():

            try:

                # You can just delete all records in one go instead of 

                # wasting time iterating and checking lengths

                db.session.query(Contacts).delete()

                db.session.commit()

            except:

                db.session.rollback()

            

            # I am iterating fields in the form that have data 

            # so we don't need multiple if statements

            for field in [field for field in form if field.data]:

                contact = Contacts(content=field.data)

                db.session.add(contact)

                db.session.commit()

            

            flash('Informacija atnaujinta!', 'success')

            return redirect(url_for('media_contacts'))

    

    else:

        for field, index in enumerate(form):

            for contact in Contacts.query.all():

                field.data = contact.content

    

    contacts = Contacts.query.all()

    return  render_template('a-media-kontaktai.html', title='Media ir kontaktai', form=form, contacts=contacts)



查看完整回答
反對 回復 2023-03-30
  • 2 回答
  • 0 關注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號