flask框架入门和总结(一)

1.Flask简介

    Flask是一个基于Python并依赖于Jinja2模板引擎和WerkZeug WSGI
服务的轻量级框架,采用了MTV的设计模式:
	M:模型层Model
	T:Template模板(HTML模板)
	V:View视图层,处理请求与响应

2.Flask路由配置

路由:是为了匹配用户的请求地址,会自动执行视图函数,视图函数中必须有返回值,返回字符串显示到相应的页面中。
路由的使用
1.定义路由及视图函数
@app.route(’/地址’)
def funcName():
     return “” #响应到页面中的内容
例:
@app.route(’/’) # '/'表示根路径
def index(): # 匹配到路径后执行的视图函数
     return “index.html”

2.定义带参数的路由
变量:<变量名>
@app.route("/login//")
def login(name,age):
     return “%s,%s” % (name,age)

3.类型转换器
分类:
缺省字符串,不能包含’/’
     int: 转换整数
     float: 转换小数
     path: 字符串,允许包含’/’
使用:
@app.route(’/show/int:num’)

4.多个URL执行同一个视图函数
例:
@app.route(’/’)
@app.route(’/index’)
def index():
     return “index.html”

3.模板

1).模板是一种“Python+html”的网页结构,允许在HTML文件中定义变量,定义流程控制。使用模板可以使视图函数专注于处理业务逻辑,将页面渲染交由模板控制
2).使用
     导入 render_template
     在视图函数中使用render_template(“模板文件”),生成模板字符串,交由浏览器解析
     所有的模板文件必须存在名为"templates"的文件下
3.变量代码块
1)模板中使用变量,语法{{ 变量名(key)}}
2)从视图函数中获取相关的变量,传递到模板文件中。
return render_template(“模板文件”,key1=value1,key2=value2)
函数中可以传递若干键值对,其中的key名就是在模板文件中使用的变量名
3)使用locals()返回字典,包含所有局部变量:params = locals()
4)过滤器
允许模板中的变量在输出之前修改成其他的值,修改显示
分类:
upper 转大写字母
lower 转小写字母
title 首字母大写
first 获取列表中第一个
last 获取最后一个
length 获取列表长度
default() 如果变量未赋值,可采用默认值
trim 去掉字符串两端的空格

语法:
{{ 变量|过滤器1|过滤器2 }}

4.Flask中的请求与响应

1.请求对象request
	1)在request对象中封装了所有跟当前请求相关的信息
	2)使用:
		引入:from flask import request
		使用:在视图函数中获取request对象内部的信息
	3)request对象常用属性
		scheme:获取此次请求使用的协议
		method:获取请求方式(GET/POST),默认为GET
		args:获取GET方式提交的数据
		form:获取POST方式提交的数据
		cookies:获取浏览器cookies中保存的数据
		files:获取上传的文件
		path:获取请求的资源路径(不带参数)
		full_path:获取请求的资源路径(带参数)
		url:获取完整的请求地址
		headers:获取请求消息头,使用key:value保存相关信息


	4)获取请求中的数据
		1.获取GET请求中的数据
			1)request.args['key']
			2)request.args.get('key','默认值')
			3)request.args.getlist('key')
				适用于一个key对应多个值的情况(复选框)
			注:get当时如果未携带数据,在视图函数中直接读取requese.args['']数据,报400,报错

2.获取POST请求中的数据
			request.form获取数据字典
			1)request.form['key']
			2)request.form.get('key')
			3)request.form.getlist('key')
			注:post方式即使未携带数据,直接获取字典中的值,返回为空
	5)页面重定向
		由服务器端通知浏览器重新向新的地址发送请求
		使用:
			引入redirect
			使用函数redirect('重定向地址')
			视图函数中返回
				return redirect('重定向地址')
									
	6)页面源
		当前的请求是从哪一个源地址发起的
		保存在请求消息头中("Referer":"")
		示例:
			# 从请求消息头中获取源地址(不一定有值)
			if "Referer" in request.headers:
					print(request.headers['Referer'])
	7)文件上传
		1.使用表单控件type="file"向服务器发送文件,因为文件,图片,音视频等都是二进制数据,必须设置表单的提交方式和编码类型
			<form action="" method="post" enctype="multipart/form-data">
		2.服务器端使用request.files获取上传的文件,返回字典
			例:
				f = request.files["key"]
				#将文件保存至指定的文件夹下
				f.save(保存路径)
发布了41 篇原创文章 · 获赞 8 · 访问量 1966

猜你喜欢

转载自blog.csdn.net/big_white_py/article/details/102732936