一、项目前置条件
①具备 python 环境,并且可以通过 pip 进行安装项目
②具备 Pycram 工具,推荐专业版
③具备 Mysql 数据库
④具备 Navicat 数据库可视化管理工具
⑤推荐使用 Google Chrome、Firefox 浏览器
一、项目运行
1、数据库导入
Navicat软件新建数据库a_movie,导入数据库脚本文件
2、配置Python环境
打开pycharm,打开项目文件夹,选择Python运行环境
安装Python依赖包 pip install -r need.txt -i Simple Index
3、配置数据库信息
4、启动Flask项目 : 运行app.py文件
爬虫:
爬虫获取页面:艺恩-数据智能服务商_年度票房
Flask依赖两个外部库:Werkzeug和Jija2。Werkzeug是一个WSGI(在Web应用和多种服务器之间的标准Python接口)工具集,Jjimja2负责演染模板。所以,在安装Flask之前,需要安装这两个外部库,而最简单的安装方式就是使用Virtualenv创建虚拟环境。
Flask是一个使用Python编写的轻量级Web应用框架。flask 和python 的区别,python就像一个大城堡里面家具应有尽有非常齐全,而flask 虽然比python要轻量一些但本身就像个小茅屋 想要或者想用什么,都是自己去拿过来的 才能用,——基于Werkzeug WSGI(PythonWeb服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是Python应用程序或框架和Web服务器之间的一种接口,已经被广泛接受, 它已基本达成它的可移植性方面的目标)工具箱和Jinja2 模板引擎。 Flask使用BSD授权。 Flask也被称为“microframework”,因为它使用简单的核心,用extension增加其他功能。Flask没有默认使用的数据库、窗体验证工具。然而,Flask保留了扩增的弹性,可以用Flask-extension加入这些功能:ORM、窗体验证工具、文件上传、各种开放式身份验证技术。
和大多数的Python第三方模块的安装方法一样,Flask可以直接通过pip来安装
我们知道,Web框架通过将不同Web应用程序中的共性部分给抽象出来,提供一系列通用的接口,从而避免开发者做重复性工作,让其将精力放在业务相关的实现。
接下来一起来看一个具体的 Web 框架,这里选择 Flask,因为它是一个年轻充满活力的微框架,有着众多的拥护者,文档齐全,社区活跃度高。我们的论坛项目 就使用了该框架。
pip install flask
1)安装: pip install flask
2)组成:WSGI系统、调试、路由
3)模板引擎:Jinja2(由Flask核心开发者人员开发)
4)使用到装饰器:以@开头的代码方法
python依赖包:
selenium
flask
pyecharts
flask_apscheduler
pymysql
requests
xlwt
web应用程序处理流程
用户通过客户端发送请求。
请求发送到web服务器上。
web服务器将请求转交给web应用程序,web应用程序进行处理。
web应用程序将请求结果返回给web服务器,由web服务器返回响应结果给客户端。
客户端收到响应结果,展示给用户。
可以看到,web服务器和web应用程序需要进行通信,但是web服务器有很多种(apache,Nginx,Lighttpd…),web应用程序开发框架也有很多种(Flask,Django…),如果没有统一标准进行通信,就会存在Web框架和Web服务器数据无法匹配的情况,那么开发就会受到限制,这显然不合理的。所以就有了WSGI规范,那么什么是WSGI呢?
WSGI
web服务器网关接口(Python Web Server Gateway Interface,简称WSGI),是为python定义的web服务器和web应用程序或框架之间的一种简单而通用的接口。它是一种规范,作用于web服务器和python应用程序之间,目的是保证不同的web服务器和不同的web应用程序或框架能够进行通信。
wsgi就像一个桥梁,连接着服务器和应用程序。
WSGI区分为两个部分:一为“服务器”或“网关”,另一为“应用程序”或“应用框架”。在处理一个WSGI请求时,服务器会为应用程序提供环境信息及一个回调函数。当应用程序完成处理请求后,透过前述的回调函数,将结果回传给服务器。
WSGI 相当于中间件同时实现了API的两方,因此可以在服务器和应用程序之间起调解作用:从Web服务器的角度来说,中间件扮演应用程序,而从应用程序的角度来说,中间件扮演服务器。
WSGI规定:
web应用程序必须是一个可调用对象,必须接收两个参数,返回一个可迭代对象。
两个参数(由服务器提供):
environ:字典,包含请求的所有信息
start_response:在可调用对象中调用的函数,用来发起响应,参数包括状态码,headers等
flask与WSGI
WSGI指Python Web Server Gateway Interface,它是为了让Web服务器与Python程序能够进行数据交流而定义的一套接口标准/规范。
客户端和服务器端进行沟通遵循了HTTP协议,可以说HTTP就是它们之间沟通的语言。从HTTP请求到我们的Web程序之间,还有另外一个转换过程——从HTTP报文到WSGI规定的数据格式。WSGI则可以视为WSGI服务器和我们的Web程序进行沟通的语言。
WSGI程序
根据WSGI的规定,Web程序(或被称为WSGI程序)必须是一个可调用对象(callable object)。
接受environ 和start_response两个参数
内部调用 start_respons生成header
返回一个可迭代的响应体