2017-02-06 13 views
0

私は1and1を通して私の共有ホスティング環境で実行するための簡単なWeb APIを取得しようとしています。フラスコの経路変数404が見つかりません

私はこのパス〜/ myapp/apiを設定しました。ここで私はすべてのPythonスクリプトを置いています。 これは私が働くことができないものです(test.py):

問題は最後のルートです。ディレクトリ "テーブル"を作成した場合にのみ動作します。それ以外の場合は、見つからないエラーがスローされます。 〜ディレクトリ内

from flask import Flask 
app = Flask(__name__) 

@app.route('/myapp/') 
def api_base(): 
    return "/myapp" 

@app.route('/myapp/api/') 
def api_base_full(): 
    return "/myapp/api" 

@app.route('/myapp/api/table/', methods = ['GET', 'POST']) 
def api_routes_table(): 
    if request.method == 'GET': 
     return getAllTableItems() 
    elif request.method == 'POST': 
     return insertNewTableItem() 

.htaccessファイル:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^myapp/(.*)$ /myapp/api/cgitester.py/betabank/$1 [L] 

cgiteseter.py:

from wsgiref.handlers import CGIHandler 
from test import app 

CGIHandler().run(app) 

私は問題を感じているが、私は本当に知らない私の.htaccessファイルの原因であります私がそこでやっていること。私はこのフラスコのドキュメントとstackoverflowの記事を見て修正する方法を把握することはできません。任意の助けをありがとう

私がしようとしているのは、私がGETをwww.example.com/myapp/api/tableに呼び出すと、私のデータベースのjsonを返すようにWeb APIを作成することです。次に、www.example.com/myapp/api/table/3はテーブル行3を返します。これで、ちょうどテキストを印刷して、適切な関数が呼び出されていることがわかりました。

答えて

0

私の.htaccessファイルには、すべての問題を引き起こしていたwordpressの行がありました。

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
#RewriteRule . /index.php [L] 
</IfModule> 

# END WordPress 

下の行をコメントアウトした後、正常に機能しました。

私は、OracleのWebサイト上でこれを見つけた:任意のアドレス

特殊なパターンに一致するように

ルール "" (単一のピリオド)は、他のルールが一致せず、ホスト/ドメイン の指定がチャネルテーブルのどこにも見つからない場合は、任意のホスト/ドメイン の指定に一致します。他の ワードでは、 "。"ルールは、アドレスの書き換え が失敗した場合の最後の手段として使用されます。

関連する問題