Как лучше организовать этот спокойный flask код? - PullRequest
0 голосов
/ 13 апреля 2020

Обучение тому, как сделать это спокойное flask .. Я сейчас тестирую этот проект.

Это содержимое app.py

import os
from flask import Flask, request, jsonify
from flask_restful import Api

app = Flask(__name__)
api = Api(app, prefix='/api/v1')

@app.route('/index', methods=['GET'])
def safe_function():
    return 'hello'


if __name__ == '__main__':
    app.run(debug=True, port=5000)

Я ожидаю, что у меня будет другое сервисы для разных моделей, поэтому я создал отдельные файлы для маршрутов. safe_function для меня, чтобы проверить, действительно ли сервер работает ..

Под services.py, у меня есть ..

from flask import request, jsonify
from core.app import app


users = [
    {
        "user_id":"abcd1234",
        "user_name":"abcd"
    },
    {
        "user_id":"fedb123",
        "user_name":"fe"
    },
    {
        "user_id":"boer1245",
        "user_name":"lhoe"
    },
    {
        "user_id":"pwer6931",
        "user_name":"wpte"
    }
]
@app.route('/users/<string:user_id>', methods=['GET'])
def get_user(user_id):
    #body = request.get_json()
    for user in users:
        if user["user_id"] == user_id:
            return jsonify(user)

    return jsonify({"message":"user not found"})

, что, когда я пытаюсь сделать 127.0.0.1:5000/api/v1/users/abcd1234 Я получаю 404 от терминала и

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>404 Not Found</title>
<h1>Not Found</h1>
<p>The requested URL was not found on the server. If you entered the URL manually please check your spelling and try
    again.</p>

от Почтальона.

Странно, даже если положить prefix='/api/v1' в app.py, когда я делаю http://127.0.0.1:5000/index, это возвращает hello, но то же самое 404, когда я делаю http://127.0.0.1:5000/api/v1/index ..

Что мне нужно исправить, чтобы префикс работал? Как я могу эффективно организовать проект, чтобы иметь больше маршрутов в отдельных файлах (и заставить его работать очевидно)?

Спасибо!

...