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

السؤال

نشر

لدي تطبيق بسيط مبني بإستخدام فلاسك 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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...