我正在研究一些从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()
答案 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的部分,我们也许可以提供更具体的帮助。