السلام عليكم:
في الورشة السابقة مطلوب منا كتابة دوال
delete
edit
show
وربطها بـ UI صفحات html الخاصة بالمشروع واجهتني هذه المشكلة بعد تنفيذ طلب التعديل على البوست
وهذا views
هذه النتيجة تظهر بعد طلب التعديل
السلام عليكم:
في الورشة السابقة مطلوب منا كتابة دوال
delete
edit
show
وربطها بـ UI صفحات html الخاصة بالمشروع واجهتني هذه المشكلة بعد تنفيذ طلب التعديل على البوست
وهذا views
هذه النتيجة تظهر بعد طلب التعديل
مرحبا صديقي @SamerElhamdo
عليك بتعريف ال method في ال app.route بهذا الشكل
@app.route("/add_post",methods= [“GET”,“POST”])
إستخدم برنامج Postman لتجربة الدوال
أظن أن الخطأ هنا
return redirect(url_for(“home”))
انت كتبتها هكذا
return redirect((“home”))
بالتوفيق
mehtod معرفة أنه في حالتين
اذا كان الطلب post
فيقوم بالتعديل على العنصر في الذاكرة
ثم يتوجه الى الدالة home
التي بدورها تجلب
index وفيه البوستات من الذاكرة بعد التعديل عليها
مع الأسف لم تنجح وهذا خطأ بالفعل لكن لم تعمل الmethod
@app.route("/")
@app.route("/index")
def home():
posts = post_store.get_all()
return render_template(“index.html”, posts = posts)
@app.route("/topic/add", methods=[‘GET’, ‘POST’])
def add_topic():
if request.method == ‘POST’:
new_post = models.Post(request.form[‘title’] , request.form[‘content’])
post_store.add(new_post)
return redirect(url_for(‘home’))
else:
return render_template(“add_topic.html”)
@app.route("/topic/delete/int:id")
def topic_delete(id):
post_store.delete(id)
return redirect(url_for(“home”))
@app.route("/topic/show/int:id")
def show_topic(id):
post = post_store.get_by_id(id)
return render_template(“show.html”, post = post)
@app.route("/topic/edit/int:id")
def edit_topic(id):
post = post_store.get_by_id(id)
if request.method == ‘POST’:
post.title = request.form[‘title’]
post.content = request.form[‘content’]
return redirect(url_for(“home”))
else:
return render_template(“edit.html”, post = post)
شكراً صديقي الحق معك
أنا حاطط شروط مع العلم ما عرفت ال methob في الروت
مشكور جدا جداً
نعم أصبح يعمل بشكل جيد