سؤال المبتدئين في بيثون - محاولة فهم بيان العودة

StackOverflow https://stackoverflow.com/questions/3496321

  •  29-09-2019
  •  | 
  •  

سؤال

في الأساس ، أرغب في إرجاع محتويات Create_user في وظيفة التسجيل لاستخدامها في حفظ قاعدة البيانات الخاصة بي. أنا مبتدئ كامل. ما الذي أسيء فهمه؟

def register():
    form = SignupForm(request.form)
    if request.method == 'POST' and form.validate():
    create_user = ({'username' : form.username.data, 'email' : form.email.data,
                        'password': form.password.data})
    flash('Thanks for registering')
    return create_user, redirect(url_for('loggedin.html'))
return render_template('get-started.html', form=form)

create_user = register()
doc_id, doc_rev = db.save(create_user)
هل كانت مفيدة؟

المحلول

بادك الخاص بك خطأ. انت تريد:

def register():
    form = SignupForm(request.form)
    if request.method == 'POST' and form.validate():
        create_user = ({'username' : form.username.data, 'email' : form.email.data,
                            'password': form.password.data})
        flash('Thanks for registering')
        return create_user, redirect(url_for('loggedin.html'))
    return render_template('get-started.html', form=form)

المسافة البادئة كتل الرمز. تحتاج إلى المسافة البادئة كل شىء داخل الوظيفة لإظهار أنه الرمز المقابل لتلك الوظيفة ، وكل شيء داخل if. لم تقم بمسافة بادئة ل if.

نصائح أخرى

أعتقد أنك فقدت بعض التنسيق في مكان ما. يجب أن يتم وضع مسافة بادئة لبيان الإرجاع الأول بما فيه الكفاية بحيث يكون داخل الكتلة وبيان الإرجاع الثاني مع الكتلة if. إذا نجح التحقق من الصحة ، فإنه يعيد tuple create_user, redirect(url_for('loggedin.html')), وإلا فإنه يعود render_template('get-started.html', form=form).

هل تذكرت استيراد طلب؟ لست متأكدًا مما تستخدمه ولكن يبدو لي قارورة بالنسبة لي ، وإذا كان الأمر كذلك "من طلب استيراد Flask".

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top