HTTP协议,即超文本传输协议(Hypertext transfer protocol)。就是详细指定浏览器与万维网(WWW=World Wide Web)服务器进行相互通讯的法则,在因特网上传输万维网文件的数据传输协议。
HTTP建立在TCP/IP应用层协议之上,包括请求与响应两部分,是标准客户端服务器模型。HTTP为无状态协议,对事务的处理缺乏记忆能力。缺乏状态是指在随后的加工中,若需先前信息,那么就不得不重传,这在另一方面可能会造成每一次连接传送数据量的增加,当服务器没有前一条消息时,其响应会更快一些
HTTP默认的端口号为80, HTTPS的端口号为443。
计算机网络体系介绍
输入网址后网站做的事
当我们在浏览器的地址栏输入“www.baidu.com”然后按回车,这之后发生了什么事
服务器:与客户端进行tcp通信,接收、解析、打包、发送http格式数据4
业务程序:根据解析后的请求数据执行逻辑处理,形成要返回的数据交给服务器。
服务器与Python业务程序的配合使用WSGI协议
常用HTTP协议介绍
Http协议定义了很多与服务器交互的方法。常见的有OPTIONS、HEAD、GET、POST、PUT、DELETE、TRACE、CONNECT。其中最基本的有4种,分别是GET,POST,PUT,DELETE
能够被服务器调用起来,根据客户端的不同请求执行不同的逻辑处理形成要返回的数据的程序。
核心:实现路由和视图(业务逻辑处理)。
create view 视图名 as 查询语句;
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受到广大开发者喜爱的原因。
扩展包
、pipenv install python-dotenv (管理项目环境变量);
2、pipenv install watchdog --dev(监测文件变动,一般开发时使用);
3、pipenv install flask-wtf (表单插件);
4、pipenv install flask-ckeditor(富文本编辑器);
5、pipenv install flask-sqlalchemy(数据库管理);
6、pipenv install flask-mail(发送邮件);
7、pipenv install bootstrap-flask(bootstrap前端css组件);
8、pipenv install flask-moment(时间和日期处理函数组件);
9、pipenv install flask-debugtoolbar(调试工具);
10、pipenv install flask-login(用户认证组件);
11、pipenv install flask-migrate(数据库迁移插件);
12、pipenv install flask-dropzone(文件上传插件);
13、pipenv install flask-avatars(头像处理插件);
14、pipenv install flask-cors(浏览器跨域插件);
15、pipenv install flask-socketio(socket插件)
from flask import Flask #导入类
#创建flask应用对象
#__name__表示当前模块名;模块名:flask以这个模块所在的目录为根目录,默认这个目录中的static为静态目录。templates为模板目录
app=Flask(__name__) #__name__属于Python中的内置类属性,代表对应程序名称。如果当前运行的程序是主程序,此时__name__的值就是__main__,反之,则是对应的模块名。
#@app.route("/index") #将视图函数与路由绑定在一起
@app.route("/")#路由 #将视图函数与路由绑定在一起 。/类似网址的/
def index():
"""
定义的视图函数
:return:
"""
return "yudengwu 520 liyueyue"
if __name__=="__main__":
app.run()#运行,启动程序
把链接复制粘贴到网页