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(保存路径)
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flask 是一款 Python Web 开发框架,它非常轻量级,灵活易用,适合小型的 Web 应用程序开发。在这里,我们将会介绍如何进行一个 Flask 项目的实战开发。 ## 环境搭建 在开始之前,我们需要先安装 Flask 框架。可以使用 pip 工具来安装,打开命令行工具,输入以下命令即可: ``` pip install flask ``` ## 创建项目 接下来,我们需要创建一个 Flask 项目,可以按照以下步骤进行操作: 1. 创建一个项目文件夹,例如 flask_project。 2. 在项目文件夹中创建一个名为 app.py 的 Python 文件。 3. 在 app.py 文件中导入 Flask 模块,并创建一个 Flask 实例。 ```python from flask import Flask app = Flask(__name__) ``` ## 路由设置 我们需要设置路由,以便我们可以通过访问特定的 URL 来触发特定的代码。我们可以使用 app.route() 装饰器来设置路由。例如: ```python @app.route('/') def index(): return 'Hello, World!' ``` 在这个例子中,我们设置了一个路由根目录 /,当用户访问这个 URL 时,会调用 index 函数,并返回一个字符串 'Hello, World!'。 ## 模板引擎 在 Flask 中,我们可以使用模板引擎来渲染 HTML 页面。最常用的模板引擎是 Jinja2。我们需要在项目创建一个 templates 文件夹,然后在 app.py 文件中设置 Jinja2 模板引擎。 ```python from flask import Flask, render_template app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') ``` 在这个例子中,我们设置了路由根目录 /,当用户访问这个 URL 时,会调用 index 函数,并渲染一个名为 index.html 的模板文件。 ## 数据库连接 在 Flask 中,我们可以使用多种数据存储方式,包括 MySQL、PostgreSQL、SQLite 等。这里以 SQLite 为例进行说明。我们需要在项目创建一个名为 database.db 的 SQLite 数据库文件,并使用 SQLite3 模块进行连接。 ```python import sqlite3 conn = sqlite3.connect('database.db') ``` ## 表单处理 在 Web 应用程序中,表单是非常重要的组成部分。Flask 提供了 Flask-WTF 扩展来处理表单。我们需要使用 pip 工具安装 Flask-WTF 扩展。 ``` pip install flask-wtf ``` 然后在 app.py 文件中导入 Flask-WTF 扩展,并创建一个表单类。 ```python from flask_wtf import FlaskForm from wtforms import StringField, SubmitField from wtforms.validators import DataRequired class NameForm(FlaskForm): name = StringField('Name', validators=[DataRequired()]) submit = SubmitField('Submit') ``` 在这个例子中,我们创建了一个名为 NameForm 的表单类,包含一个名为 name 的字符串字段和一个名为 submit 的提交按钮。 ## 部署项目 在开发完成之后,我们需要将项目部署到服务器上。最常用的 Web 服务器是 Apache 和 Nginx。Flask 也提供了一个名为 Werkzeug 的开发 Web 服务器,但它只适用于开发环境。在生产环境中,我们需要使用 Apache 或 Nginx。 ## 总结 这就是一个 Flask 项目的基本开发流程。当然,在实际开发中,还有很多其他的问题需要处理,例如用户验证、数据存储等。希望这篇文章能够帮助你入门 Flask 开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值