2017-02-06 4 views
0

나는 1and1을 통해 공유 호스팅 환경에서 실행되는 간단한 웹 API를 얻으려고했습니다.플라스크 경로 변수 404 찾을 수 없습니다.

저는이 경로를 ~/myapp/api에 설치했습니다. 여기서 모든 파이썬 스크립트를 넣습니다. 이것은 내가 일할 수없는 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 게시물을 보는이 문제를 해결하는 방법을 알아낼 수 없습니다. 모든 도움을 주셔서 감사합니다

웹 API를 만들어서 www.example.com/myapp/api/table에 전화를 걸면 데이터베이스가 json으로 반환됩니다. 그렇다면 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 

하단의 주석 처리가 끝난 후 제대로 작동했습니다.

난 그냥 오라클 웹 사이트에서 이걸 발견 : "."

규칙이 모든 주소

특수 패턴과 일치하는 (단일 마침표)는 다른 규칙이 일치하지 않고 호스트/도메인 사양을 채널 테이블의 어느 곳에서도 찾을 수없는 경우 모든 호스트/도메인 사양과 일치합니다. 다른 단어에서 "." 규칙은 주소 재 작성 이 실패 할 경우 마지막 수단으로 사용됩니다.

관련 문제