flask基础教程
目录
安装
为什么要创建虚拟环境呢? 因为Python的包管理工具pip默认安装在系统目录下,如果系统目录下有其他版本的包,可能会导致冲突。 创建虚拟环境后,就可以在虚拟环境中安装各种包,不会影响到系统目录下的包。
创建虚拟环境
bash
python3 -m venv venv
激活虚拟环境
bash
source venv/bin/activate
安装Flask
bash
pip install flask
创建一个app.py文件,并写入以下代码:
python
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run()
运行app.py文件,访问localhost:5000,即可看到“Hello, World!”
模板
Flask支持Jinja2模板引擎,Jinja2是Python写的模板引擎,它可以用来生成HTML、XML、CSV、JavaScript、CSS、等等各种格式的文本文件。
基本使用
在app.py文件中,导入render_template函数,并在hello_world函数中使用它。
python
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def hello_world():
return render_template('index.html')
if __name__ == '__main__':
app.run()
在templates目录下创建一个index.html文件,并写入以下代码:
html
<!DOCTYPE html>
<html>
<head>
<title>Hello, World!</title>
</head>
<body>
<h1>Hello, World!</h1>
</body>
</html>
变量传递
在index.html文件中,我们可以使用变量来传递数据。
html
<!DOCTYPE html>
<html>
<head>
<title>Hello, {{ name }}!</title>
</head>
<body>
<h1>Hello, {{ name }}!</h1>
</body>
</html>
在app.py文件中,使用变量传递数据。
python
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def hello_world():
return render_template('index.html', name='World')
if __name__ == '__main__':
app.run()
条件语句
在index.html文件中,我们可以使用条件语句来判断是否显示“Hello, World!”。
html
<!DOCTYPE html>
<html>
<head>
<title>Hello, {{ name }}!</title>
</head>
<body>
{% if name == 'World' %}
<h1>Hello, World!</h1>
{% else %}
<h1>Hello, {{ name }}!</h1>
{% endif %}
</body>
</html>
在app.py文件中,使用条件语句来判断是否显示“Hello, World!”。
python
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def hello_world():
return render_template('index.html', name='World')
if __name__ == '__main__':
app.run()
在index.html文件中,我们可以使用循环语句来显示多个“Hello, World!”。
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello, World!</title>
</head>
<body>
<h1>Hello, {{ name }}!</h1>
<ul>
{% for i in range(10) %}
<li>Hello, World!</li>
<li>Hello, World!</li>
<li>Hello, World!</li>
{% endfor %}
</ul>
</body>
</html>
静态文件的使用
- 静态文件一般存放在项目的static文件夹中,可以通过url_for()函数来访问静态文件。
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<img src="{{ url_for('static', filename='img/flask.png') }}">
<img src="{{ url_for('static', filename='img/flask.png') }}">
</body>
</html>