Python脚本可以用作纯python,但不能与Flask一起使用

时间:2019-03-15 05:57:58

标签: python web flask

我正在研究一些从Canvas中获取课程信息的代码。作为纯python,它可以正常工作。如果我尝试将其与Flask结合使用,则会出现以下错误

requests.exceptions.MissingSchema: Invalid URL 'run/api/v1/courses/1234567': No schema supplied. Perhaps you meant http://run/api/v1/courses/1234567?

这是有问题的代码:

画布文件

import sys
from canvasapi import Canvas

def getinfo():
    canvasurl = "https://canvas.instructure.com/";
    canvastoken = #Redacted for this example

try:
    canvastoken = sys.argv[1];
    canvasurl = sys.argv[2];
except:
   print()


#Create a new canvas object passing in the newly aquired url and token
canvas = Canvas(canvasurl, canvastoken);

#print(canv)

# Create a new course oject -- passing in course number as a parameter
# Course number is currently hard coded

print(canvas.get_course(1234567))

烧瓶文件代码(我正在尝试运行的文件):

from flask import Flask
import canvas

canvas.getinfo()

app = Flask(__name__)


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


if __name__ == '__main__':
    app.run()

1 个答案:

答案 0 :(得分:1)

未提供任何架构通常意味着您未在URL中指定http://https://

在您提供的代码中,没有看到对run/api/v1/courses/1234567的引用。一种可能是,如果您在代码中url_for的任何地方使用requests方法,请尝试设置_external=True

url = url_for('relativeURL', _external=True)

这允许Flask构造一个绝对URL(即,包含域的URL)。

如果您不使用url_for,请检查代码中可能在URL中省略http或https的其他位置。

如果您将问题更新为包含涉及不良URL的部分,我们也许可以提供更具体的帮助。