Reputation: 417
I'm learning Flask and all the router examples I see look like this:
@app.route('/')
def hello():
name = request.args.get("name", "World")
return f'Hello, {escape(name)}!'
I don't want any code in my controller except:
@app.route('/')
def hello():
mycode.doHelloWorld()
return mycode.sayHelloWorld()
I like my code to be reusable and testable and if it's in the Flask controller it's neither. Can someone point me to examples of using Flask with the business logic/code separate from the controller?
Upvotes: 0
Views: 84
Reputation: 375
You can try defining a function which returns a similar output given a request
parameter like so:
def sayHelloWorld(request):
name = request.args.get("name", "World")
return f"Hello, {name}!"
@app.route("/")
def hello():
return sayHelloWorld(request)
or based on the code you provided, you can create a class which contains reusable code snippets as static functions
class ReusableCode:
@staticmethod
def sayHelloWorld(request):
name = request.args.get("name", "World")
return f"Hello, {name}!"
@app.route("/"):
def hello():
return ReusableCode.sayHelloWorld(request)
Upvotes: 1