Add a sub-application example
This commit is contained in:
1
examples/subapps/README.md
Normal file
1
examples/subapps/README.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
This directory contains examples that demonstrate sub-applications.
|
||||||
27
examples/subapps/app.py
Normal file
27
examples/subapps/app.py
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
from microdot import Microdot
|
||||||
|
from subapp import subapp
|
||||||
|
|
||||||
|
app = Microdot()
|
||||||
|
app.mount(subapp, url_prefix='/subapp')
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/')
|
||||||
|
async def hello(request):
|
||||||
|
return '''
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Microdot Sub-App Example</title>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div>
|
||||||
|
<h1>Microdot Main Page</h1>
|
||||||
|
<p>Visit the <a href="/subapp">sub-app</a>.</p>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
''', 200, {'Content-Type': 'text/html'}
|
||||||
|
|
||||||
|
|
||||||
|
app.run(debug=True)
|
||||||
44
examples/subapps/subapp.py
Normal file
44
examples/subapps/subapp.py
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
from microdot import Microdot
|
||||||
|
|
||||||
|
subapp = Microdot()
|
||||||
|
|
||||||
|
|
||||||
|
@subapp.route('')
|
||||||
|
async def hello(request):
|
||||||
|
# request.url_prefix can be used in links that are relative to this subapp
|
||||||
|
return f'''
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Microdot Sub-App Example</title>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div>
|
||||||
|
<h1>Microdot Sub-App Main Page</h1>
|
||||||
|
<p>Visit the sub-app's <a href="{request.url_prefix}/second">secondary page</a>.</p>
|
||||||
|
<p>Go back to the app's <a href="/">main page</a>.</p>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
''', 200, {'Content-Type': 'text/html'}
|
||||||
|
|
||||||
|
|
||||||
|
@subapp.route('/second')
|
||||||
|
async def second(request):
|
||||||
|
return f'''
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Microdot Sub-App Example</title>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div>
|
||||||
|
<h1>Microdot Sub-App Secondary Page</h1>
|
||||||
|
<p>Visit the sub-app's <a href="{request.url_prefix}">main page</a>.</p>
|
||||||
|
<p>Go back to the app's <a href="/">main page</a>.</p>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
''', 200, {'Content-Type': 'text/html'}
|
||||||
Reference in New Issue
Block a user