2

URL 関連の問題があります。インデックスページとプロジェクトページがあります(引数として渡すプロジェクトキーに応じて、多くのプロジェクトの1つを表示できます)。domainname.com/index と domainname.com/some_project_key で異なるビュー関数を呼び出すことができるように、「きれいな」URL が必要です。

@app.route('/')
@app.route('/index')
def index():
pass

@app.route('/<path:projectkey>')
def project(projectkey):
pass

インデックスページに行こうとするとインデックス関数を通過しますが、テンプレートを返す前にプロジェクト関数も実行され、存在しないプロジェクトでクエリが実行されるため、これはうまくいきません。これに対する組み込みのソリューションはありますか、それとも回避策が必要ですか? 私が得ることができるどんな助けも大歓迎です。

4

1 に答える 1

1

Web ブラウザーからインデックス ページを呼び出そうとする場合、多くのブラウザーは同じドメインに対して GET 呼び出しを行ってファビコンを取得することにも注意してください。これを複製しようとすると...

from flask import Flask

app = Flask(__name__)

@app.route('/')
@app.route('/index')
def index():
    print 'index'
    return 'index'

@app.route('/<path:projectkey>')
def project(projectkey):
    print 'project'
    return 'project'

app.run(debug=True)

走った後、インデックスにヒットして受け取った...

index
127.0.0.1 - - [14/Oct/2013 18:08:41] "GET / HTTP/1.1" 200 -
project
127.0.0.1 - - [14/Oct/2013 18:08:41] "GET /favicon.ico HTTP/1.1" 200 -

つまり、これは機能しています。ただし、ブラウザが に対して 2 回目の GET リクエストを行うため、「project」が出力され/favicon.icoます。

于 2013-10-14T22:12:04.873 に答える