私はここからサンプルコードに従っています:http://flask.pocoo.org/docs/views/#pluggable-views
このコードは完全ではないと思います。動作させて構築することはできません。
次の関数のコードを再利用しようとしています。
データベースエントリの追加
@app.route('/add/category/', methods=['GET', 'POST'])
def addCategory():
form = forms.AddCategory()
if form.validate_on_submit():
name = form.name.data
database.addCategory(name)
return redirect('/view/categories/')
return render_template('add-category.html', form = form)
@app.route('/add/revision/', methods=['GET', 'POST'])
def addRevision():
form = forms.AddRevision()
if form.validate_on_submit():
name = form.name.data
version = form.version.data
database.addRevision(name, version)
return redirect('/view/revisions/')
return render_template('add-revision.html', form = form)
データベースエントリの編集
@app.route('/edit/category/<category>', methods=['GET', 'POST'])
def editCategory(category):
form = forms.AddCategory()
form.name.data = category
if form.validate_on_submit():
newName = form.name.data
database.editCategory(name = category, newName = newName)
#view single category?
return redirect('/view/categories/')
return render_template('edit-category.html', category = category, form = form)
@app.route('/edit/revision/<name>/<version>', methods=['GET', 'POST'])
def editRevision(name, version):
form = forms.AddRevision()
form.name.data = name
form.version.data = version
if form.validate_on_submit():
newName = form.name.data
newVersion = form.version.data
database.editRevision(name, version, newName, newVersion)
return redirect('/view/revisions/')
return render_template('edit-revision.html', name = name, version = version, form = form)
これは私の現在のコードです
class ListView(View):
def get_template_name(self):
raise NotImplementedError()
def render_template(self, context):
return render_template(self.get_template_name(), **context)
def dispatch_request(self):
context = {'objects': self.get_objects()}
return self.render_template(context)
class CategoryView(ListView):
def get_template_name(self):
return 'categories.html'
def get_objects(self):
return models.Category.query.all()
app.add_url_rule('/categories', view_func=RenderTemplateView.as_view('categories', template_name='categories.html'))
app.add_url_ruleのCategoryViewクラスを使用するように指定するにはどうすればよいですか?