3

私は、cherrypy と Mako テンプレートを使用して Python で書かれた非常に単純な Web アプリケーションを持っています。最も面倒なのは、パラメーターを含むリンクを印刷することです。特に、パラメーターを段階的に追加したり、既存のパラメーターを更新したり、パラメーターを削除したりする必要がある場合はそうです。

アプリの一般的なパターンは、データベースに保存されている画像のリストなど、テーブルにリストされているアイテムの漸進的な制限です。次に、ユーザー

  1. リストされたすべての画像で始まります。つまり、URL は /images です。
  2. URL が /images?category=2398 であるため、カテゴリ内のアイテムに制限されます
  3. 2013/01/07にエントリーした商品に限定するのでURLは/images?category=2398&date=20130107
  4. カテゴリ制限を削除して、URL を /images?date=20130107 にします
  5. /images?date=20130107&sort=size&order=asc で項目を並べ替えます。
  6. /images?date=20130107&sort=size&order=desc でアイテムを逆方向に並べ替えます

これのほとんどは、テーブル ヘッダーまたはテーブル セルの値 (カテゴリ名など) をクリックすることで発生し、それを処理するのは多かれ少なかれ同じであり、記述および変更が非常に面倒な大量のコードです。

これを自動的に処理する最良の方法は何ですか? これを簡単にするためのcherrypy(ツール/プラグイン)またはMakoの何かはありますか?

4

1 に答える 1

1

URL変数を構成ファイルに入れ、それらをすべて1か所に保持できます...

#server.conf
[urlvariables]
variables: ['date', 'sort', 'order']

次に、Mako テンプレートをレンダリングするときに、次のように URL を作成します...

urlstring = ''
for CurrentVar in cherrypy.request.app.config['urlvariables']['variables']:
    urlstring += CurrentVar + '=' + 'yourvalue&' 

mytemplate = Template("<a href='{url}'>click here</a>")
return mytemplate.render(url='/images?' + urlstring)

お役に立てれば!

アンドリュー

于 2013-02-14T13:08:36.667 に答える