最近想把之前写过的一些工具给整合起来,前端弄好了,现在主要是后端 API 这块。以下是为了方便举例我故意简化,实际开发中文件比较庞大:
假设现在有 3 个 APP,分别叫“app1”, "app2", "app3"。如果是所有 app 的 api 都放在一个 app.py
文件,那就是:
from flask import Flask
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
@app.route('/api/app1/greeting/<inputText>', methods=['POST', 'GET'])
def app1_greeting(inputText):
return "Greeting from app1: Hello {}".format(inputText)
@app.route('/api/app2/greeting/<inputText>', methods=['POST', 'GET'])
def app2_greeting(inputText):
return "Greeting from app2: Hello {}".format(inputText)
@app.route('/api/app3/greeting/<inputText>', methods=['POST', 'GET'])
def app3_greeting(inputText):
return "Greeting from app3: Hello {}".format(inputText)
if __name__ == '__main__':
app.run()
现在为了方便后期维护管理,我想把这些 app 写在不同的.py
文件里面当作一个 package 来导入到主文件中,文件目录结构如下:
那么我现在写成如下:
# app.py
from flask import Flask
from flask_cors import CORS
from app1 import app1_greeting
from app2 import app2_greeting
from app3 import app3_greeting
app = Flask(__name__)
CORS(app)
@app.route('/api/app1/greeting/<inputText>', methods=['POST', 'GET'])
app1_greeting()
@app.route('/api/app2/greeting/<inputText>', methods=['POST', 'GET'])
app2_greeting()
@app.route('/api/app3/greeting/<inputText>', methods=['POST', 'GET'])
app3_greeting()
if __name__ == '__main__':
app.run()
# print(app1_greeting('John'))
然后 package 如下:
# app1.py
def app1_greeting(inputText):
return "Greeting from app2: Hello {}".format(inputText)
显然这是错的,因为运行报语法错误。
那么请问老哥们,应该如何写呢?
谢谢!👍👍
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.