如何在 flask restful api 应用程序中配置 basepath?
How to configure basepath in flask restful api application?
我想为我的烧瓶应用程序设置一个基本路径。我在下面提到了一个例子。
basepath = 'http://localhost:3000/api'
我有两个 api 调用一个是 GET
另一个是 POST
.
from flask import Flask
from flask_restful import Api
app = Flask(__name__)
api = Api(app)
api.add_resource(CreateUser, "/v1/user/create/")
api.add_resource(CreateUser, "/v1/user/details")
class CreateUser(Resource):
def post(self):
# Code for creating a user
def get(self):
# Code for get the details of user.
所以在这里,如果我想创建用户,那么我的 url 将是 http://localhost:3000/api/v1/user/create/
GET
也一样。那么我该如何实现呢?
使用路径前缀初始化您的 Api:
from flask import Flask
from flask_restful import Api
app = Flask(__name__)
api = Api(app, "/api")
...
您不能通过这种方式更改主机和端口,您必须 运行 带有参数的烧瓶:
flask run --host=127.0.0.1 --port=3000
或者你也可以
from flask import Flask
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app, "/api")
...
if __name__ == "__main__":
app.run(host="127.0.0.1", port="3000")
请记住,这不适用于生产环境,仅用于本地测试。请参阅 https://flask.palletsprojects.com/en/1.1.x/tutorial/deploy/ 在生产环境中使用。
如果您想从 basepath
获取这些值,一种选择是 purl
:
url = purl.URL('http://localhost:3000/api')
url.host() # --> "localhost"
url.port() # --> 3000
url.path() # --> "/api"
我想为我的烧瓶应用程序设置一个基本路径。我在下面提到了一个例子。
basepath = 'http://localhost:3000/api'
我有两个 api 调用一个是 GET
另一个是 POST
.
from flask import Flask
from flask_restful import Api
app = Flask(__name__)
api = Api(app)
api.add_resource(CreateUser, "/v1/user/create/")
api.add_resource(CreateUser, "/v1/user/details")
class CreateUser(Resource):
def post(self):
# Code for creating a user
def get(self):
# Code for get the details of user.
所以在这里,如果我想创建用户,那么我的 url 将是 http://localhost:3000/api/v1/user/create/
GET
也一样。那么我该如何实现呢?
使用路径前缀初始化您的 Api:
from flask import Flask
from flask_restful import Api
app = Flask(__name__)
api = Api(app, "/api")
...
您不能通过这种方式更改主机和端口,您必须 运行 带有参数的烧瓶:
flask run --host=127.0.0.1 --port=3000
或者你也可以
from flask import Flask
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app, "/api")
...
if __name__ == "__main__":
app.run(host="127.0.0.1", port="3000")
请记住,这不适用于生产环境,仅用于本地测试。请参阅 https://flask.palletsprojects.com/en/1.1.x/tutorial/deploy/ 在生产环境中使用。
如果您想从 basepath
获取这些值,一种选择是 purl
:
url = purl.URL('http://localhost:3000/api')
url.host() # --> "localhost"
url.port() # --> 3000
url.path() # --> "/api"