1. web开发原理
python web一般分为两部分:服务器程序和应用程序。服务器程序负责对socket服务器进行封装,并在请求到来时,对请求的各种数据进行整理。应用程序则负责具体的逻辑处理。为了方便应用程序的开发,就出现了许多的web框架,例如Django,Flask,web.py等。开发的应用程序要和服务器程序配合,才能为用户提供服务。web应用的本质是:1.浏览器发送一个HTTP请求;2.服务器收到请求,生成一个HTML文档;3.服务器把HTML文档作为HTTP响应的body发送给浏览器;4.浏览器收到HTTP响应,从HTTP Body取出HTML文档并显示。
WSGI(Web Server Gateway Interface)是一种规范,它定义了使用python编写的web app和web server之间接口格式,实现web app和web server之间的解耦,使我们不需要接触到底层代码,不用接触到TCP连接,HTTP原始请求和响应格式。要求开发者实现一个函数,就可以响应HTTP请求。
python标准库提供的独立WSGI服务器称为wsgiref
from wsgiref.simple_server import make_server def application(environ, start_response): start_response('200 ok',[('Content-Type','text/html')]) return [b'<h1>hello world</h1>'] if __name__ == '__main__': httpd = make_server('',8000,application) #创建一个服务器,IP地址为空,端口是8000,处理函数是application print('serving http on port 8000...') httpd.serve_forever() #开始监听HTTP请求
application函数就是WSGI标准的一个HTTP处理函数,它接收两个参数:
environ:一个包含所有HTTP请求信息的dict对象;
start_response:一个发送HTTP响应的函数
在application函数中,调用:
start_response('200 ok',[('Content-Type','text/html')])
就发送了HTTP响应的Header。start_response()函数接收两个参数,一个是HTTP响应码,一个是一组list表示的HTTP Header,Header用一个包含两个str的tuple表示。把Content-Type头发送给浏览器,其他很多常用的HTTP Header也应该发送,然后,函数的返回值将作为HTTP响应的Body发送给浏览器。
无论多么复杂的Web应用程序,入口都是一个WSGI处理函数。HTTP请求的所有输入信息都可以通过environ获得,HTTP响应的输出都可以通过start_response()加上函数返回值作为Body。
2.MVC设计模式
models.py文件主要用一个python类来描述数据表,称为模型。
views.py文件包含了页面的业务逻辑。
urls.py指出什么样的URL调用什么的视图
本人新手主要是记录the django book中的阅读,如有错误和侵权请留言。
参考资料:http://www.cnblogs.com/wupeiqi/articles/4491246.html
https://www.liaoxuefeng.com/