-
Notifications
You must be signed in to change notification settings - Fork 2
Umstrukturierung - HTTP Konfiguration sauber trennen #14
Copy link
Copy link
Open
Description
Hier ein Vorschlag, wie ich mir so eine saubere Trennung zwischen der HTTP Konfiguration und dem restlichen Code vorstellen könnte (s. #13).
- channels
- ...
- website
- static
- templates
__init__.py
Die Flask Sachen würde ich dann nur in website/__init__.py machen. So als Beispiel:
class Website:
...
def register_url(self):
self.app.add_url_rule('/',
view_func=self.index)
self.app.add_url_rule('/api/system',
view_func=self.sysinfo_api)
def index(self):
return render_template('index.html')
def sysinfo_api(self):
return jsonify(sysinfo.get()) # --> Funktion ausgelagert
class ChannelsApi:
def __init__(self, wlanthermo):
...
self.channels = channels.Channels() # --> vorhandene Klasse ohne Flask Konfiguration
def register_api(self):
self.app.add_url_rule('/api/colors',
view_func=self.channels.get_colors_api)
self.app.add_url_rule('/api/channels/<int:module_id>/<int:channel_id>',
methods=['POST'],
view_func=self.channels.register_channel_api)
self.app.add_url_rule('/api/channels/<int:module_id>/<int:channel_id>',
view_func=self.channels.get_channels_api)
self.app.add_url_rule('/api/channels/<int:module_id>',
view_func=self.channels.get_channels_api)
...
Manche Sachen fände ich noch als Modul eleganter (z.B. settings.py anstatt settings/__init__.py), aber das ist Geschmackssache.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels