Введите учетные данные хранилища BLOB-объектов Azure с помощью запроса Flask - PullRequest
0 голосов
/ 18 декабря 2018

Вот мой код тестирования

После того, как я развернул следующее приложение фляги на локальном хосте и ввел четыре параметра, я получил это сообщение об ошибке:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>405 Method Not Allowed</title>
<h1>Method Not Allowed</h1>
<p>The method is not allowed for the requested URL.</p>

Мой вопрос: Как правильно настроить метод request, чтобы я мог ввести учетные данные хранилища BLOB-объектов Azure и загрузить BLOB-объект из Azure.

Я попытался установить метод на «GET» и использовать «флягу».request.args [] ', но я тоже не работал.

Я не уверен Если у кого-нибудь есть идеи для решения этих проблем, спасибо!

PS: Если я заменю этиФункция запроса к действительным учетным данным BLOB Azure, приложение работает просто отлично.Так что проблема наверняка исходит из части 'request'.

@app.route('/train', methods=['POST'])
def train():
    StorageAccountName = request.form['AccountName']
    AccountKey = request.form['AccountKey']
    ContainerName = request.form['ContainerName']
    BlobName = request.form['BlobName']




    blob_service = BlockBlobService(account_name = StorageAccountName, account_key = AccountKey)
    blobstring = blob_service.get_blob_to_text(ContainerName, BlobName).content
    test = pd.read_csv(StringIO(blobstring))


    df = pd.read_csv(StringIO(blobstring))
    include = ['Pclass','Sex','Age','Fare','SibSp','Survived']

    # Create dummies and drop NaNs
    df['Sex'] = df['Sex'].apply(lambda x: 0 if x == 'male' else 1)
    df = df[include].dropna()

    X = df[['Pclass', 'Sex', 'Age', 'Fare', 'SibSp']]
    y = df['Survived']

    Pre = RandomForestClassifier(n_estimators=100).fit(X, y)

    # Save model file in project folder
    joblib.dump(value = Pre, filename = "RFmodel.pkl")

    # Upload model file to Azure blob storage
    blob_service.create_blob_from_path(ContainerName, "RFmodel.pkl", "RFmodel.pkl")



    return 'Done.' 
...