اذهب إلى المحتوى
  • 0

خطأ Method Not Allowed في فلاسك Flask

Mohssen A Mohssen

السؤال

لدي تطبيق بسيط مبني بإستخدام فلاسك Flask بالشكل التالي:

@app.route('/submit', methods=['GET', 'POST'])
def submit():
    if request.method == 'POST':
        title = request.form['title']
        content = request.form['content']
        post_entry = models.Post(title=title, content=post)
        db.session.add(post_entry)
        db.session.commit()
        
        return redirect(url_for('my-form'))
    else:
        return render_template('error.html')

@app.route('/my-form')        
def my_form():
    posts = []
    for post in session.query(models.Post):
        posts.append((post.title, post.content))
    return render_template('posts.html', posts=posts)

كما هو ظاهر من الكود، فإن أحد المسارات يقوم بحفظ منشور في قاعدة البيانات ومسار آخر يقوم بعرض بعض المنشورات، وهنا الكود الخاص بالإستمارة form:

<form action='/submit' method = "post">
    title: <input name="title" type="text">
    main: <input name="content" type="text">
    <button type="submit">Publish</button>
</form> 

المشكلة أن كلما أقوم بإرسال الإستمارة من خلال الضغط على زر Publish يظهر لي الخطأ التالي:

Method Not Allowed: The method is not allowed for the requested URL.

بالرغم من أني تأكدت من إضافة المعامل methods إلى المسار submit إلا أن الخطأ مازال يظهر بدون فائدة.

ما سبب هذا الخطأ هنا؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

الخطأ ربما يكون صادر من هنا

@app.route('/my-form')        
def my_form():
    posts = []
    for post in session.query(models.Post):
        posts.append((post.title, post.content))
    return render_template('posts.html', posts=posts)

جرب اضافة methods في app.route

@app.route('/my-form', methods=['GET', 'POST'])        
def my_form():
    posts = []
    for post in session.query(models.Post):
        posts.append((post.title, post.content))
    return render_template('posts.html', posts=posts)

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...