找不到烧瓶路线变量404

时间:2017-02-06 23:19:37

标签: python-2.7 .htaccess asp.net-web-api flask cgi

我一直试图通过1and1在我的共享托管环境中运行一个简单的web api。

我已经设置了这个路径〜/ myapp / api,我放了所有的python脚本。 这是我无法工作的那个(test.py):

问题在于最后一条路线。它只有在我创建目录“tables”时才有效。否则会抛出一个未找到的错误。

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文件中,因为我真的不知道我在那里做什么。我无法弄清楚如何解决这个问题,看看flask文档和stackoverflow帖子。谢谢你的帮助

我要做的是创建一个web api,这样当我对GES调用www.example.com/myapp/api/table时,它会返回我的数据库的json。然后www.example.com/myapp/api/table/3将返回表格第3行。现在我只想要打印一些文字,以便我知道正确的函数被调用。

1 个答案:

答案 0 :(得分: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网站上找到了这个:

匹配任何地址的规则

  

特殊模式“。” (单个句点)匹配任何主机/域   规范,如果没有其他规则匹配和主机/域   规范在通道表中的任何地方都找不到。其他   单词,“。”当地址重写时,规则被用作最后的手段   否则会失败。