Page:
Development/Backend
2
Development/Backend
ferfissimo edited this page 2021-05-26 23:37:30 +00:00
Backend Development
Plugin Development
File Structure
flaschengeist-example-plugin
|> __init__.py
|> model.py
|> setup.py
Files
__init__.py
from flask import Blueprint
from flaschengeist.modules import Plugin
example_bp = Blueprint("example", __name__, url_prefix="/example")
permissions = ["example_hello"]
class PluginExample(Plugin):
def __init__(self, conf):
super().__init__(blueprint=example_bp, permissions=permissions)
def install(self):
from flaschengeist.system.database import db
import .model
db.create_all()
db.session.commit()
@example_bp.route("/hello", methods=['GET'])
@login_required(roles=['example_hello'])
def __hello(id, **kwargs):
return "Hello"
model.py
Optional, only needed if you need your own models (database)
from flaschengeist.system.database import db
class ExampleModel(db.Model):
"""Example Model"""
__tablename__ = 'example'
id = db.Column(db.Integer, primary_key=True)
description = db.Column(db.String(240))
setup.py
from setuptools import setup, find_packages
setup(
name="flaschengeist-example-plugin",
version="0.0.0-dev",
packages=find_packages(),
install_requires=[
"flaschengeist >= 2",
],
entry_points={
"flaschengeist.plugin": [
"example = flaschengeist-example-plugin:ExampleModel"
]
},
)
Tips and Tricks
Code formatting
We use Black as the code formatter.
Installation:
$ pip install black
Usage:
$ black -l 120 DIRECTORY_OR_FILE
Git blame
When using git blame
use this to ignore the code formatting commits:
$ git blame FILE.py --ignore-revs-file .git-blame-ignore-revs
Or if you just want to use git blame
, configure git like this:
$ git config blame.ignoreRevsFile .git-blame-ignore-revs
Ignore changes on config
git update-index --assume-unchanged flaschengeist/flaschengeist.toml