Как правильно ввести зависимости в Flask? - PullRequest
0 голосов
/ 05 декабря 2018

Я пишу свое первое приложение Flask.До сих пор я получил все для работы (обратите внимание, что этот код будет распределен по нескольким файлам):

class AppDefinition:

    def __init__(self):
        self.App = Flask(__name__, instance_relative_config = True)
        self.PlacesProvider = GooglePlacesSearchProvider(
            'https://maps.googleapis.com/maps/api/place/findplacefromtext/json',
            'my_api_key')

app = AppDefinition()

@app.App.route('/search/phone/<phone>/<language>')
def search_with_phone_number(phone: str, language: str):
    resp = app.PlacesProvider.get_by_phone_number(phone, language)
    return from_response(resp)

@app.App.route('/search/address/<address>/<language>')
def search_with_address(address: str, language: str):
    resp = app.PlacesProvider.get_by_address(address, language)
    return from_response(resp)

def from_response(resp: Response):
    return json.dumps(resp.json(), ensure_ascii = False)

if __name__ == '__main__':
    HOST = 'localhost'
    PORT = 5000
    app.App.run(HOST, PORT)

Однако я не особенно доволен этим кодом.Методы контроллера не были инкапсулированы в надлежащий класс, зависимости не вставлены должным образом и, похоже, нет способа инкапсулировать методы контроллера.Кажется, что все эти проблемы касаются внедрения зависимостей по своей сути, так что это, вероятно, реальная проблема здесь, IMHO.Учитывая это, как мне поступить с внедрением зависимости в этом сценарии?

...