带有多个文件的瓶子框架

use*_*873 12 python frameworks bottle

我已经阅读了瓶文档,但是我找不到如何使用Bottle和多个文件的示例.下面是我做的方式,它的工作,但我不知道这是否是去(我看到的正确方法merge(),并mount()在API,但不知道他们都与此有关).请给我评论.

  1. all.py(这是运行的主文件)

    #! /usr/bin/python
    from bottle import route, run
    
    import hello1
    import hello2    # if I have 10 files, it will be 10 imports
    
    run(host='localhost', port=8080, debug=True)
    
    Run Code Online (Sandbox Code Playgroud)
  2. hello1.py

    #! /usr/bin/python
    from bottle import route, run
    
    @route('/hello1')
    def hello1():
        return "Hello world no.1"
    
    Run Code Online (Sandbox Code Playgroud)
  3. hello2.py

    #! /usr/bin/python
    from bottle import route, run
    
    @route('/hello2')
    def hello2():
        return "Hello world no.2"
    
    Run Code Online (Sandbox Code Playgroud)

Spa*_*ade 12

我想使用一个单瓶服务器来提供一系列微应用程序,并且可以分散关注点,想要做你一直在寻找的东西.

以下是我解决任务的方法:

rootApp.py(您的主文件)

from bottle import Bottle
from clientApp import clientApp

rootApp = Bottle()
@rootApp.route('/')
def rootIndex():
    return 'Application Suite Home Page'

if __name__ == '__main__':
    rootApp.merge(clientApp)
    rootApp.run(debug=True)
Run Code Online (Sandbox Code Playgroud)



clientApp.py(需要合并到套件中的新应用程序)

from bottle import Bottle

clientApp = Bottle()

@clientApp.route('/clientApp')
def clientAppIndex():
    return 'Client App HomePage'
Run Code Online (Sandbox Code Playgroud)


我不确定这是否是最好的方法,但它似乎没有投诉工作,并省去了必须在应用程序之间共享端口的麻烦,否则可以相互了解.这种方法真的源于设计偏好,但如果有人能够证明AppStack如何用于获得相同的结果,我将不胜感激.


Vas*_*nov 2

如果将代码拆分为 10 个 Python 模块,则\xe2\x80\x99 将执行 10 次导入。您可以使用以下方式进行迭代__import__

\n\n
for i in range(1, 11):\n    __import__('hello%d' % i)\n
Run Code Online (Sandbox Code Playgroud)\n\n

但这对我来说并不是一个好主意。为什么需要10个具有微框架的模块?

\n

  • 我想如果它是一个微框架应该不重要。如果我正在创建一个 Web API,并且我的数据库中有 20 个表,每个表都映射到一个资源,并且我想将每个表的请求处理程序和关联的 ORM 保留在独立文件中,这不是正确的方法吗?做吗?我对 python 和 Bottle 都比较陌生,所以如果我错了,请纠正我。 (2认同)