Обучение тому, как сделать это спокойное 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
..
Что мне нужно исправить, чтобы префикс работал? Как я могу эффективно организовать проект, чтобы иметь больше маршрутов в отдельных файлах (и заставить его работать очевидно)?
Спасибо!