Sadece Flask/Flask-WTF/SQLAlchemy ile çalışmaya başladım ve çoğu örnekte gördüğüm CRUD kodu, ekleme/düzenleme için ayrı şablonlar gösteriyor. Neredeyse aynı form html (ör. Books_add.html, books_edit.html) ile iki şablona sahip olmak tekrarlayıcı görünmektedir. Kavramsal olarak, "books_form.html" gibi bir şablona sahip olmak için bir mantığa sahip olmak ve aynı şablon üzerinde render_template öğesini iki ayrı rota tanımından çağırmak daha mantıklı.Python Flask-WTF - işlemleri eklemek ve düzenlemek için aynı form şablonunu kullanın
@app.route('/books/add')
def add_book():
...
render_template('books_form.html', action = 'add')
@app.route('/books/edit/<id>')
def edit_book(id):
...
render_template('books_form.html', action = 'edit', id = id)
ama ben doğru yolda olduğumu emin, ya da en iyi uygulama sapan değilim: Ben, gerçi gibi bir şey bunu başarmak için nasıl emin değilim. Herhangi bir girdi takdir edilir - davranış ekleme veya düzenleme ile başa çıkmak için tek şablon dosyasının nasıl işleneceği ile ilgili belirli düşünceler. Örneklere bağlantılar da açıktır.
Teşekkürler!
Teşekkür! Render_form referansını anladığımdan emin değilim - WTForms belgelerine ve Quickstart'a geri döndüm, bulamadım. Kodumda çalışamıyorum. Nereye gittiğimi anladım - form şablonunu düşündüğümden çok daha fazlasını oluşturdunuz. Belki o parçanın biraz daha fazlasını yapabilirsen? – David
Formunuzu oluşturmak için bir jinja makrosu kullanabilirsiniz. [Bu özgeçmişe bakın] (https://gist.github.com/Teisman/5653607) - orada göreceğiniz kodun çoğu benim değil. 'Render' işlevi sadece çok genel bir form oluşturucu. Sean'ın da belirttiği gibi, bu rotayı izlerseniz form örneğini şablona aktarmanız gerekir. – Teisman
Teşekkürler! Bu açıklığa yardımcı olur. – David