Скрипт Python работает как чистый Python, но не с Flask - PullRequest
0 голосов
/ 15 марта 2019

Я работаю над кодом, который извлекает информацию о курсе из Canvas.Как чистый питон, он отлично работает.Если я пытаюсь включить его в 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))

Код файла Flask(файл, который я пытаюсь запустить):

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 Ответ

1 голос
/ 15 марта 2019

Схема не предоставляется, как правило, означает, что вы не указали http:// или https:// в URL.

В указанном вами коде я не вижу никакой ссылки на run/api/v1/courses/1234567. Одна из возможностей - если вы используете метод url_for из requests в любом месте вашего кода, попробуйте установить _external=True:

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

Это позволяет Flask создать абсолютный URL (т. Е. URL с включенным доменом).

Если вы не используете url_for, проверьте другие места в вашем коде, где вы можете не указывать http или https в URL.

Если вы обновите свой вопрос, включив в него часть, которая ссылается на URL-адрес, вызывающий проблемы, мы можем предоставить более конкретную помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...