Flask之最易懂的基础教程一(2020年最新-从入门到精通)


Flask框架的基础教程:

一、web工作原理

1. B/S和C/S架构
- B/S:浏览器/服务器架构(客户端需要更新才行)
- C/S:客户端/服务器架构(刷新页面即可更新)(可能会成为主流)
2. WEB工作原理
客户端 > 服务器 > python(flask) > 数据库(mysql)

二、Flask框架

1. 简介
  • 是一个非常小的框架,可以称为微型框架,只提供了一个强劲的核心,其他的功能都需要使用拓展来实现。意味着可以根据自己的需求量身打造;
2. 组成
  • 调试、路由、wsgi系统
  • 模板引擎(Jinja2)
3. 安装
  • pip install flask
4. 简单使用
  • 创建Flask框架。(社区版没有直接创建的功能,专业版有)
# 导入Flask类库
from flask import Flask
# 创建应用实例
app = Flask(__naem__)
# 视图函数(路由)
@app.route('/')
def index():
	return '<h1>Hello Flask!<h1>'
# 启动实施(只在当前模块运行)
if __name__ == '__main__':
	app.run()
5. run方法参数
参数 说明 默认值
debug 代码更新是否自动重启 False
theaded 是否开启多线程 False
port 指定端口 5000
host 指定主机(设置0.0.0.0可以通过本地IP访问) 127.0.0.1
6. 请求和响应
变量 上下文 描述
current_app 应用上下文 相当与在主程序中激活的实例化app(app=Flask(__name__)
g 应用上下文 一次性函数,处理请求的临时变量。只在一个请求中被应用,下个请求开始时会自动重置
request 请求上下文 请求对象。存放了客户端发来的HTTP信息
session 请求上下文 记录用户和服务器之间的会话的。在服务器端记录需要记住的信息。(和cookie对应,cookies是记录在客户端的)
7. 请求钩子装饰器
函数 描述
before_first_request 第一次请求之前
before_request 每次请求之前
app.after_request 没有异常,每次请求结束后
app.teardown_request 有异常也会运行,每次请求结束后

说明:以上钩子函数若写在蓝图中,只能针对蓝本的请求。若想在蓝本中设置全局有效的函数,需要使用带app的钩子函数。如:before_first_request 变为 before_app_first_request。

8. 视图函数
1. 不带参数的视图函数
# 导入Flask类库
from flask import Flask
# 创建应用实例
app = Flask(__name__)
# 视图函数(路由)
@app.route('/index')
def index():
	return '<h1>Hello Flask!<h1>'
# 启动实施(只在当前模块运行)
if __name__ == '__main__':
	app.run()
2. 带参数的视图函数
# 导入Flask类库
from flask import Flask
# 创建应用实例
app = Flask(__name__)
# 视图函数(路由)
@app.route('/user/<username>')
def say_hello(username):
	return '<h1>Hello %s !<h1>' % username
# 启动实施(只在当前模块运行)
if __name__ == '__main__':
	app.run()
  1. 参数要写在<>中、
  2. 视图函数的参数要与路由中的一致
  3. 也可以指定参数类型(int/float/path),默认是字符串
3. 带类型限定(path)的视图函数
# 导入Flask类库
from flask import Flask
# 创建应用实例
app = Flask(__name__)
# 视图函数(路由)
@app.route('/user/<path:info>')
def test(info):
	return info
# 启动实施(只在当前模块运行)
if __name__ == '__main__':
	app.run()

前端运行结果:
在这里插入图片描述

  1. 路由中最后的"/"最好带上,否在访问时可能会报错。
9. 获取request请求值
# 导入Flask类库
from flask import Flask,request
# 创建应用实例
app = Flask(__name__)
# request
@app.route('/request/<path:info>')
def request_url(info):
	# 完整的请求URL
	return request.url
	'''
	url:127.0.0.1:5000/request/abc/def?username=xiaoming&pwd=123
	网页返回值:http://127.0.0.1:5000/request/abc/def?username=xiaoming&pwd=123
	'''
	# 去掉GET参数的URL
	return request.base_url
	'''
	网页返回值:http://127.0.0.1:5000/request/abc/def
	'''
	# 只有主机和端口的URL
	return request.host_url
	'''
	网页返回值:http://127.0.0.1:5000/
	'''
	# 装饰器中写的路由地址
	return request.path
	'''
	网页返回值:/request/abc/def
	'''
	# 请求方法类型
	return request.method
	'''
	网页返回值:GET (也有可能时POST)
	'''
	# 远程地址
	return request.remote_addr
	'''
	网页返回值:127.0.0.1:5000
	'''
	# 获取url参数
	return request.args.get('username')
	return request.args.get('pwd')
	return str(request.args)
	# 获取headers信息
	return request.headers.get('User-Agent')
# 启动实施(只在当前模块运行)
if __name__ == '__main__':
	app.run()
10. 响应的构造(make_response)
from flask import Flask,make_response
app = Flask(__name__)
@app.route('/response/')
def response():
	# 不指定状态码,默认为200,表示OK
	# return ‘OK’
	# 构造一个404状态码
	# 方法一
	return 'not fount',404
	# 方法二
	# 导入make_response
	# 自定义构造一个响应,然后返回200,构造也可以指定状态码404
	res = make_response('我是通过函数构造的响应',404)
	return res
if __name__ == '__main__':
	app.run()
11. 重定向(redirect)
from flask import Flask,redirect
app = Flask(__name__)
@app.route('/old/)
def old():
	# return '这里是原始内容。'
	# 如果输入旧的old路由,会指向新的地址。
	# 先输入一个外地请求试试
	return redirect('https://www.baidu.com')
	# 再输入一个本地请求试试
	return redirect('/new/')
	# 根据视图函数找到路由,指向方法:<url_for>中的参数'new'指向的是<函数名>
	return redirect(url_for('new'))
	return redirect(url_for('say_hello',username='xiaoming'))
@app.rout('/new/')
def new():
	return '这里是新的内容'
if __name__ == '__main__':
	app.run()
12. 终止abort
from flask import Flask
app = Flask(__name__)
@app.route('/login/')
def login
  • 87
    点赞
  • 511
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
Flask Web开发从入门到精通》是一本介绍如何使用Flask来进行Web开发的书籍。Flask是一个基于Python的轻量级Web框架,它简单易学、灵活且功能强大,适用于各种规模的Web开发项目。 这本书从基础概念开始讲解,详细介绍了Flask工作原理、核心组件和基本用法。读者可以学习如何搭建一个简单的Flask应用,并通过实例了解路由、模板、表单处理、数据库操作等关键知识点。书中还提供了大量的示例代码和实践项目,帮助读者深入理解Flask的各种功能和技术应用。 同时,《Flask Web开发从入门到精通》也从入门到精通的过程,逐步介绍了如何构建复杂的Web应用。读者可以学习如何优化性能、处理用户认证和授权、实现RESTful API等高级技术。此外,书中还对与其他常用工具如数据库、前端框架的集成等进行了探讨。 云盘是指云存储服务,它通过网络为用户提供存储和备份服务。在网络时代,云盘成为了人们共享和传输文件的重要方式。对于Flask Web开发从入门到精通这样的书籍来说,如果有相关的云盘提供,会方便读者获取书籍的各种资源,如代码示例、实例项目、扩展模块等。 利用云盘存储这些资源,读者可以方便地进行下载、备份和共享。此外,云盘还提供了多种访问方式,可以在不同的设备上随时随地进行访问,方便读者在学习过程中的查阅和使用。 总而言之,《Flask Web开发从入门到精通》是一本全面介绍Flask框架的书籍,通过学习这本书,读者可以掌握Flask的基础知识和高级应用技巧。如果提供相应的云盘服务,将对读者的学习和使用带来更多的便利。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值