做电脑回收什么网站好,wordpress自带企业主题下载,贵州遵义网,用pageadmin做的网站用什么虚拟主机号一、了解框架
Flask作为Web框架#xff0c;它的作用主要是为了开发Web应用程序。那么我们首先来了解下Web应用程序。Web应用程序 (World Wide Web)诞生最初的目的#xff0c;是为了利用互联网交流工作文档。 1、一切从客户端发起请求开始。
所有Flask程序都必须创建一个程序…一、了解框架
Flask作为Web框架它的作用主要是为了开发Web应用程序。那么我们首先来了解下Web应用程序。Web应用程序 (World Wide Web)诞生最初的目的是为了利用互联网交流工作文档。 1、一切从客户端发起请求开始。
所有Flask程序都必须创建一个程序实例。
当客户端想要获取资源时一般会通过浏览器发起HTTP请求。
此时Web服务器使用一种名为WEB服务器网关接口的WSGIWeb Server Gateway Interface协议把来自客户端的请求都交给Flask程序实例。
Flask使用Werkzeug来做路由分发URL请求和视图函数之间的对应关系。根据每个URL请求找到具体的视图函数。
在Flask程序中路由一般是通过程序实例的装饰器实现。通过调用视图函数获取到数据后把数据传入HTML模板文件中模板引擎负责渲染HTTP响应数据然后由Flask返回响应数据给浏览器最后浏览器显示返回的结果。
2、客户端不一定是浏览器也可以是PC软件、手机APP、程序
根据服务器端的工作将其分为两部分
服务器与客户端进行tcp通信接收、解析、打包、发送http格式数据
业务程序根据解析后的请求数据执行逻辑处理形成要返回的数据交给服务器
服务器与Python业务程序的配合使用WSGI协议。
1.3 框架的轻重
重量级的框架为方便业务程序的开发提供了丰富的工具、组件如Django
轻量级的框架只提供Web框架的核心功能自由、灵活、高度定制如Flask、Tornado
二、认识Flask
1、简介
Flask诞生于2010年是Armin ronacher人名用Python语言基于Werkzeug工具箱编写的轻量级Web开发框架。它主要面向需求简单的小应用。
Flask本身相当于一个内核其他几乎所有的功能都要用到扩展邮件扩展Flask-Mail用户认证Flask-Login都需要用第三方的扩展来实现。比如可以用Flask-extension加入ORM、窗体验证工具文件上传、身份验证等。Flask没有默认使用的数据库你可以选择MySQL也可以用NoSQL。其 WSGI 工具箱采用 Werkzeug路由模块 模板引擎则使用 Jinja2 。
可以说Flask框架的核心就是Werkzeug和Jinja2。
Python最出名的框架要数Django此外还有Flask、Tornado等框架。虽然Flask不是最出名的框架但是Flask应该算是最灵活的框架之一这也是Flask受到广大开发者喜爱的原因。 2、与Django对比
django提供了
django-admin快速创建项目工程目录
manage.py 管理项目工程
orm模型数据库抽象层
admin后台管理站点
缓存机制
文件存储系统
用户认证系统
而这些flask都没有都需要扩展包来提供
3、Flask扩展包
Flask-SQLalchemy操作数据库
Flask-migrate管理迁移数据库
Flask-Mail:邮件
Flask-WTF表单
Flask-script插入脚本
Flask-Login认证用户状态
Flask-RESTful开发REST API的工具
Flask-Bootstrap集成前端Twitter Bootstrap框架
Flask-Moment本地化日期和时间
三、安装使用Flask
1、安装flask
pip3 install flask2、第一个Flask程序
Flask程序运行过程
所有Flask程序必须有一个程序实例。
Flask调用视图函数后会将视图函数的返回值作为响应的内容返回给客户端。一般情况下响应内容主要是字符串和状态码。
当客户端想要获取资源时一般会通过浏览器发起HTTP请求。此时Web服务器使用WSGIWeb Server Gateway Interface协议把来自客户端的所有请求都交给Flask程序实例。WSGI是为 Python 语言定义的Web服务器和Web应用程序之间的一种简单而通用的接口它封装了接受HTTP请求、解析HTTP请求、发送HTTP响应等等的这些底层的代码和操作使开发者可以高效的编写Web应用。
程序实例使用Werkzeug来做路由分发URL请求和视图函数之间的对应关系。根据每个URL请求找到具体的视图函数。 在Flask程序中路由的实现一般是通过程序实例的route装饰器实现。route装饰器内部会调用add_url_route()方法实现路由注册。
调用视图函数获取响应数据后把数据传入HTML模板文件中模板引擎负责渲染响应数据然后由Flask返回响应数据给浏览器最后浏览器处理返回的结果显示给客户端。
创建一个flask项目然后创建app.py文件。
# 导入Flask类
from flask import Flask#Flask类接收一个参数__name__
app Flask(__name__)# 装饰器的作用是将路由映射到视图函数index
app.route(/)
def index():return Hello World# Flask应用程序实例的run方法启动WEB服务器
if __name__ __main__:app.run()启动项目在浏览器访问此时页面上就会有Hello World。
3、Flask创建app对象
3.1 初始化参数
# 创建flask的应用对象;
# __name__ flask以这个模块所在的目录为总目录默认这个目录中static为静态目录templates为模板目录
app Flask(__name__,static_url_path/static, # 访问静态资源的url前缀默认为staticstatic_folderstatic, # 静态文件的目录默认为statictemplate_foldertemplates, # 模板文件的目录默认为templates)3.2 配置参数
# 配置参数的使用方式开启调试模式
# 1.使用配置文件
app.config.from_pyfile(config.cfg) # 在项目下创建一个config.cfg文件然后在里面写DEBUGTrue# 2.使用对象配置参数
class Config(object):DEBUG True
app.config.from_object(Config)# 3.直接操作config的字典对象
app.config[DEBUG] True3.3 在视图读取配置参数
# 2.使用对象配置参数
# class Config(object):
# DEBUG True
# NAME test
# app.config.from_object(Config)from flask import Flask, current_app# 读取配置参数# 1.直接从全局对象app的config字典中取值# print(app.config.get(NAME))# 2. 通过current_app获取参数# print(current_app.config.get(NAME))3.4 app.run的参数
# 启动Flask程序
app.run() # 默认127.0.0.1
# app.run(host192.168.1.1, port5000) # 使用电脑ip
# app.run(host0.0.0.0, port5000, debugTrue) # 配置host和port。设置0.0.0.0时都可以访问可以在这里设置调试模式