- Flask Framework Cookbook
- Shalabh Aggarwal
- 406字
- 2021-08-05 17:17:21
Bootstrap layout
Most of the applications in Flask follow a specific pattern to lay out templates. In this recipe, we will talk about the recommended way of structuring the layout of templates in a Flask application.
Getting ready
By default, Flask expects the templates to be placed inside a folder named templates
at the application root level. If this folder is present, then Flask will automatically read the contents by making the contents of this folder available for use with the render_template()
method, which we will use extensively throughout this book.
How to do it…
Let's demonstrate this with a small application. This application is very similar to the one we developed in Chapter 1, Flask Configurations. The first thing to do is add a new folder named templates
under my_app
. The application structure will now look like the following lines of code:
flask_app/ - run.py my_app/ – __init__.py - hello/ - __init__.py - views.py - templates
We need to make some changes to the application. The hello_world
method in the views file, my_app/hello/views.py
, will look like the following lines of code:
from flask import render_template, request @hello.route('/') @hello.route('/hello') def hello_world(): user = request.args.get('user', 'Shalabh') return render_template('index.html', user=user)
In the preceding method, we look for a URL query argument, user
. If it is found, we use it, and if not, we use the default argument, Shalabh
. Then, this value is passed to the context of the template to be rendered, that is, index.html
, and the resulting template is rendered.
To start with, the my_app/templates/index.html
template can be simply put as:
<html> <head> <title>Flask Framework Cookbook</title> </head> <body> <h1>Hello {{ user }}!</h1> <p>Welcome to the world of Flask!</p> </body> </html>
How it works…
Now, if we open the URL, http://127.0.0.1:5000/hello
, in a browser, we will see a response, as shown in the following screenshot:

We can also pass a URL argument with the user
key as http://127.0.0.1:5000/hello?user=John
; we will see the following response:

As we can see in views.py
, the argument passed in the URL is fetched from the request
object using request.args.get('user')
and passed to the context of the template being rendered using render_template
. The argument is then parsed using the Jinja2 placeholder, {{ user }}
, to fetch the contents from the current value of the user
variable from the template context. This placeholder evaluates all the expressions that are placed inside it, depending on the template context.
See also
- The Jinja2 documentation can be found at http://jinja.pocoo.org/. This comes in handy when writing templates.
- Oracle WebLogic Server 12c:First Look
- HTML5移動Web開發技術
- Java Web基礎與實例教程(第2版·微課版)
- CentOS 7 Linux Server Cookbook(Second Edition)
- R語言游戲數據分析與挖掘
- 實戰Java程序設計
- Android NDK Beginner’s Guide
- Scratch 3.0少兒編程與邏輯思維訓練
- SQL基礎教程(視頻教學版)
- Cybersecurity Attacks:Red Team Strategies
- C語言程序設計
- Buildbox 2.x Game Development
- HTML5+CSS3+jQuery Mobile APP與移動網站設計從入門到精通
- MongoDB Cookbook(Second Edition)
- AutoCAD基礎教程