Flask基础学习

记录下自己学flask的过程

配置虚拟环境

网上看的

  • 虚拟环境是Python解释器的一个私有的副本,在这个环境中你可以安装私有包,而且不会影响系统中安装的全局Python解释器。虚拟环境非常的有用,可以在系统中Python解释器中避免包的混乱和版本的冲突。为每个程序单独创建虚拟环境可以保证程序只能访问虚拟环境中的包,从而保持全局解释器的干净简洁,使其只作为(更多)虚拟环境的源

为了方便配置,我使用了pycharm

在桌面创建‘flask-test.txt’文件,将其后缀修改为‘.py’,打开后,进入pycharm中file中的settings

找到Project Interpreter,点击右上角的设置logo

点击后,再点击‘Add’

进入到这个页面,点击OK即可

之后需要安装flask这个包,进入到刚才的设置页面

点击‘+’,搜索flask,install即可

基础知识

在配置好虚拟环境的py文件中写入以下代码(文件名不能是 flask.py ,因为这将与 Flask 本身冲突)

最简单的程序

1
2
3
4
5
6
7
8
9
10
11
12
13
#导入了 Flask 类
from flask import Flask
#创建一个该类的实例
app = Flask(__name__)

#使用 route() 装饰器告诉 Flask 什么样的URL 能触发我们的函数。默认‘127.0.0.1:5050’
@app.route('/')
def start():
return 'hello world'

#确保服务器只会在该脚本被 Python 解释器直接执行的时候才会运行,而不是作为模块导入的时候。
if __name__ == '__main__':
app.run(debug=True)

构造含有动态部分的 URL

1
2
3
@app.route('/user/<name>') 
def start(name):
return 'hello %s' % name

尖括号中的名称为变量名,这个部分将会作为命名参数传递到你的函数,如上述定义了’/user/‘,在浏览器输入‘127.0.0.1:5050/user/gtf’时会生成‘hello gtf’这条消息

规则可以用 converter:variable_name 指定一个可选的转换器。

int        接受整数
float    但是接受浮点数
path    和默认的相似,但也接受斜线

1
2
3
@app.route('/user/<int:name>') 
def start(name):
return 'hello %s' % name

此时‘user/’后不能为字符类型,只能为整数类型

唯一 URL / 重定向行为

结尾有尾斜线

1
2
3
@app.route('/projects/')
def projects():
return 'The project page'

此时输入网址‘127.0.0.1:5050/projects’或‘127.0.0.1:5050/projects/’都会执行projects函数(不带斜线的 URL 会被 Flask 重定向到带斜线的规范 URL 去)
结尾无尾斜线

1
2
3
@app.route('/about')
def about():
return 'The about page'

此时输入网址‘127.0.0.1:5050/about’会执行about函数,但是结尾增加一个尾斜线,会产生404错误

模板渲染

引入 render_template

1
from flask import render_template

可以使用 render_template() 方法来渲染模板。将模板名和你想作为关键字的参数传入模板的变量。

1
2
3
4
5
6

from flask import render_template

@app.route('/user/<name>')
def hello(name):
return render_template('index.html', name=name)

将写好的index.html文件放在py文件同级目录下的templates文件夹(需要新建)

加载静态文件

使用模板后发现加载出来的页面没有css、js、图片,需要将这些静态文件放到static文件夹下(需要新建),放入后还要更改HTML原路径