网络编程技术:第5章 PythonWeb编程1

上传人:努力****83 文档编号:190670958 上传时间:2023-02-28 格式:PPTX 页数:46 大小:1.51MB
收藏 版权申诉 举报 下载
网络编程技术:第5章 PythonWeb编程1_第1页
第1页 / 共46页
网络编程技术:第5章 PythonWeb编程1_第2页
第2页 / 共46页
网络编程技术:第5章 PythonWeb编程1_第3页
第3页 / 共46页
资源描述:

《网络编程技术:第5章 PythonWeb编程1》由会员分享,可在线阅读,更多相关《网络编程技术:第5章 PythonWeb编程1(46页珍藏版)》请在装配图网上搜索。

1、5.1 CGI、FastCGI与WSGI5.2 Python Web开发框架5.3 Django安装与使用静态文件资源Web服务器HTTP静态网站如何根据用户请求返回动态信息?Web服务器HTTPCGI:通用网关接口(CommonGatewayInterface)CGI就像是一座桥,把网页和WEB服务器中的执行程序连接起来,CGI使网页变得不是静态的,而是交互式的。CGI 应用程序CGI脚本工作流程 浏览器通过HTML表单或超链接请求指向一个CGI应用程序的URL。服务器收发到请求。服务器执行所指定的CGI应用程序。CGI应用程序执行所需要的操作,通常是基于浏览者输入的内容。CGI应用程序把结

2、果格式化为网络服务器和浏览器能够理解的文档(通常是HTML网页)。网络服务器把结果返回到浏览器中。CGI应用程序和典型的应用程序主要区别在于输入、输出以及用户和计算机交互方面CGI程序的输入是用户表单,输出是连接的Web客户端,而不是返回到屏幕,这些返回的数据必须是一系列有效头文件的HTML。CGI程序不直接和用户发生交互,所有的交互发生在Web客户端、Web服务器端和CGI应用程序之间。开发CGI应用程序的编程语言 Perl、PHP、C/C+、PythonCGI应用程序和典型的应用程序主要区别 在于输入、输出以及用户和计算机交互方面 CGI程序的输入是用户表单,输出是连接的Web客户端,而不

3、是返回到屏幕,这些返回的数据必须是一系列有效头文件的HTML。CGI程序不直接和用户发生交互,所有的交互发生在Web客户端、Web服务器端和CGI应用程序之间。可以使用Web服务器(如Apache)+Python CGI程序的方式完成Web开发也可以使用Python自带的Web服务器+PythonCGI的方式启动Python自带的Web服务器命令$python m CGIHTTPServer 注:本命令将以当前路径为根路径建立一个端口号为8000的Web服务器,只需在当前路径下建立一个Cgi-bin目录,并将Python CGI脚本放在那里,就可以访问CGI了。示例:建立D:/Cgi-bin目

4、录,开启命令行并输入D:并回车,进入到D盘根目录,输入命令启动python自动web服务器 python m CGIHTTPServer 编写hellocgi.py文件,内容如下页,把hellocgi.py文件放置于D:/Cgi-bin 然后打开浏览器,在地址栏中输入:http:/127.0.0.1:8000/cgi-bin/hellocgi.py?a=1 编写hellocgi.py文件,内容如下,把hellocgi.py文件放置于D:/Cgi-bin import import cgireshtml=Content-Type:text/htmlnContent-Type:text/htmln

5、hello world CGIhello world CGI your input is:%s your input is:%s/htmlform=cgi.FieldStorage()a=formaa.valueprint print reshtml%(a)浏览器输出如下:命令行输出如下:cgi模块中的FieldStorage类 在Python CGI脚本开始时这个类会被实例化,它会读出Web客户端提交来的用户信息,它包含一个类似字典的对象,具有一系列的key-value对,key就是通过表单传入的表单条目的名字,value为相应数据 form=cgi.FieldStorage()a=form

6、aa.value Cgi对于每个用户请求都需要启动一个新进程,效率比较低,逐渐被放弃使用,被一些新的方式所取代 Web服务器内置解释器模块:有新的动态请求进来时,web服务器就是自己解析这些perl或php脚本 FastCGI:像一个常驻型的CGI,使用持续的进程来处理一连串的请求。这些进程由FastCGI进程管理器管理,原理图见下页。FastCGI是语言无关的、可伸缩架构的CGI开放扩展 WSGI:Python Web Server Gateway Interface,Python Web服务器网关接口,目标是要建立一个简单的普遍适用的服务器与 WEB 框架之间的接口FastCGI的工作流程

7、 Web Server启动时载入FastCGI进程管理器 FastCGI进程管理器自身初始化,启动多个CGI解释器进程并等待连接。当客户端请求到达Web Server时,FastCGI进程管理器选择并连接到一个CGI解释器。Web server将CGI环境变量和标准输入发送到FastCGI子进程 FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web Server。FastCGI子进程接着等待并处理下一个连接。在CGI模式中,php-cgi在此便退出WSGI WSGI将 web 组件分为三类:web服务器,web中间件,web应用程序 wsgi基本处理模式为:WSGI Serv

8、er-(WSGI Middleware)*-WSGI Application。WSGI wsgi server可以理解为一个符合wsgi规范的web server,接收request请求,封装一系列环境变量,按照wsgi规范调用注册的wsgi app,最后将response返回给客户端。wsgi application就是一个普通的callable对象,当有请求到来时,wsgi server会调用这个wsgi app。这个对象接收两个参数,通常为environ,start_response。wsgi middleware介于服务器程序和应用程序之间,middleware需要把自己伪装成一个服务

9、器,接受应用程序,调用它,同时middleware还需要把自己伪装成一个应用程序,传给服务器程序。框架对比 web.py:轻量级的开源Python Web框架,小巧灵活 web2py:提供一站式的解决方案,整个开发过程都可以在浏览器上进行 Flask:也被称为“microframework”,因为它使用简单的核心,用 extension 增加其他功能。Django:属于Full stack framework。包括了几乎所有web开发用到的模块。session管理、CSRF防伪造请求、Form表单处理、ORM数据库对象化官网https:/ 劳伦斯出版集团需要开发一个以新闻内容为主的网站。对于新

10、闻网站来说,需求变化很快,互动性也很高。于是,world onlineworld online的三位工程师使用pythonpython开发了DjangoDjango。Django特点 Ridiculously fast,快 Fully loaded,全 Reassuringly secure,安全 Exceedingly scalable,可扩展 Incredibly versatile,全能Django安装 使用python的在线安装,pip install Django 也可以在安装时指定版本号,如:安装完成后,在Python安装路径下 X:Python27Libsite-packages

11、路径下可以看到django文件夹。在X:Python27Scripts路径下可以看到django项目管理工具:django-admin 在命令行下执行django项目管理工具 django-admin显示如下信息,列表中显示的是支持的命令 在IDE中创建django工程、django应用等也是执行的django-admin对应的命令 例如:django-admin startproject 命令用于创建django工程 django-admin startapp 命令用于创建django应用 django-admin runserver 命令用于启动运行当前项目 以使用PyCharm IDE为

12、例创建第一个django项目输入项目名hellodjango,点击创建后,进入如下界面:在菜单中选择Run/Run hellodjango,快捷键shift+F10在下方信息窗口中可以看到服务器已运行信息,访问地址是http:/127.0.0.1:8000/打开浏览器,输入地址http:/127.0.0.1:8000/,出现如下页面,说明django工程运行成功在当前的hellodjango工程中创建第一个app,操作步骤如下:执行tools菜单下的run manage.py task命令在当前的hellodjango工程中创建第一个app,操作步骤如下:在下方会出现django项目管理命令输

13、入框在命令提示符后输入startapp demo,创建名为demo的app在当前的hellodjango工程中创建第一个app,操作步骤如下:此时在项目浏览器里中可以看到新创建的demo,如下图左所示:其中包含文件如下图右所示。打开hellodjango路径下的urls.py文件在url(rradminadmin/,include(admin.site.urls),后面输入url(r$r$,demo.views.indexpagedemo.views.indexpage),如下图所示:打开demo路径下的views.py文件在#Create your views here.后面定义函数打开de

14、mo路径下的views.py文件HttpResponse会显示红色错误,原因是没有引入相关的包,在from from django.shortcuts import import render 后,输入from from django.http import import HttpResponse,如下图所示:在菜单中选择Run/Run hellodjango,快捷键shift+F10在浏览器输入http:/127.0.0.1:8000/在demo路径下的views.py文件中继续添加函数 def def sum(request):a=request.GETaa b=request.GETbb

15、 reshtml=The sum of%s and%s is%dThe sum of%s and%s is%d return return HttpResponse(reshtml%(a,b,int(a)+int(b)打开hellodjango路径下的urls.py文件在url(r$r$,demo.views.indexpagedemo.views.indexpage),后面输入url(rrsumsum/,demo.views.sumdemo.views.sum),如下图所示:打开浏览器输入:http:/127.0.0.1:8000/sum/?a=1&b=5Django的过程在demo文件夹下

16、创建templates文件夹,注意文件夹名不能写错选中templates文件夹右键点new,选择html文件,即在templates文件夹中创建html文件,命名为sum.html在sum.html的body中输入the sum of a a and b b is c c 修改views.py 注释掉sum函数中的return HttpResponse(reshtml%(a,b,int(a)+int(b)然后在其后添加c=int(a)+int(b)return return render(request,sum.htmlsum.html,locals()打开文件settings.py,在INSTALLED_APPS 元组中最后增加一项demodemo,如下图所示:打开浏览器输入:http:/127.0.0.1:8000/sum/?a=123&b=456

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!