相关疑难解决方法(0)

列出Flask中所有可用的路线,以及相应的功能'docstrings

我正在编写一个小API,并希望打印所有可用方法的列表以及相应的"帮助文本"(来自函数的docstring).从这个答案开始,我写了以下内容:

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/api', methods = ['GET'])
def this_func():
    """This is a function. It does nothing."""
    return jsonify({ 'result': '' })

@app.route('/api/help', methods = ['GET'])
    """Print available functions."""
    func_list = {}
    for rule in app.url_map.iter_rule():
        if rule.endpoint != 'static':
            func_list[rule.rule] = eval(rule.endpoint).__doc__
    return jsonify(func_list)

if __name__ == '__main__':
    app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)

这样做有更好 - 更安全的方式吗?谢谢.

python flask

15
推荐指数
2
解决办法
8482
查看次数

测试Flask路线确实存在和不存在

我正在使用正则表达式创建大量Flask路由.我想要进行单元测试,检查是否存在正确的路由以及错误的路由404.

这样做的一种方法是启动本地服务器并使用urllib2.urlopen等.但是,我希望能够在Travis上运行这个测试,我假设这不是一个选择.

我还有另一种方法可以在我的应用程序上测试路线吗?

python testing unit-testing flask

8
推荐指数
2
解决办法
6531
查看次数

显示创建的新网页的链接

我正在用Python构建一个网站(使用heroku),我想创建一个"最新的提交"部分.也就是说,当我@app.route(blah)在我的Python应用程序中创建一个新的时,我希望在我的主页上的"最新提交"部分下显示新页面的链接.

这可能吗?

编辑:这是我的代码

import os
import json
from flask import Flask, render_template, url_for
from werkzeug.routing import Map, Rule, NotFound, RequestRedirect, BaseConverter

app = Flask(__name__)


@app.route('/')
def index():
    return  render_template('welcome.html')

@app.route('/about', endpoint='about')
def index():
    return  render_template('about.html')

@app.route('/contact', endpoint='contact')
def index():
    return  render_template('contact.html')

@app.route('/all-links', endpoint='all-links')
def all_links():
    links = []
    for rule in app.url_map.iter_rules():
        url = url_for(rule.endpoint)
        links.append((url, rule.endpoint))
    return render_template('all_links.html', links=links)



if __name__ == '__main__':
    # Bind to PORT if defined, otherwise default to 5000.
    port = int(os.environ.get('PORT', 5000)) …
Run Code Online (Sandbox Code Playgroud)

python heroku flask

3
推荐指数
1
解决办法
3582
查看次数

Flask无法在导入的模块中查找路径

我遇到了Flask的问题,其中导入模块中声明的路由没有注册,总是产生404.我在Python 2.7上运行最新版本的Flask.

我有以下目录结构: 在此输入图像描述 run.py具有以下代码:来自flask导入Flask

app = Flask(__name__)


@app.route('/')
def hello_world():
    return 'Hello World!'

import views.home

if __name__ == '__main__':
    app.run()
Run Code Online (Sandbox Code Playgroud)

home.py具有以下代码:

from run import app


@app.route('/test')
def test():
    return "test"
Run Code Online (Sandbox Code Playgroud)

当我运行run.pyhome.py(http:// localhost:5000/test)中声明的路由时,即使run.py导入也总是返回404 views.home.声明的根视图(http:// localhost:5000)run.py工作正常.

我编写了一个函数,打印出所有已注册的路由和/ test不在那里(获取应用程序中定义的所有路由的列表).

知道为什么吗?

python flask python-2.7

1
推荐指数
1
解决办法
4553
查看次数

Flask API - 列出所有添加的资源

我使用 Flask 创建了一个简单的 API,我的问题是如何让它列出已分配的所有资源或端点

from flask import Flask, request
from flask_restful import Resource, Api
from sqlalchemy import create_engine
from json import dumps
import os, random

app = Flask(__name__)
api = Api(app)

class cuddle(Resource):
    def get(self):
        file = random.choice(os.listdir("/path/to/dir/of/images"))
        out = "https://example.com/path/" + file
        return out

api.add_resource(cuddle, '/api/cuddle')

if __name__ == '__main__':
        app.run(host="0.0.0.0", port=33, debug=True)
Run Code Online (Sandbox Code Playgroud)

我希望能够访问example.com/api/endpoints并列出所有可用的端点,例如在代码片段中cuddle

python api flask python-3.6

1
推荐指数
1
解决办法
2525
查看次数

标签 统计

flask ×5

python ×5

api ×1

heroku ×1

python-2.7 ×1

python-3.6 ×1

testing ×1

unit-testing ×1