【CSDN软件工程师能力认证学习精选】python WSGL的使用

CSDN软件工程师能力认证(以下简称C系列认证)是由中国软件开发者网CSDN制定并推出的一个能力认证标准。C系列认证历经近一年的实际线下调研、考察、迭代、测试,并梳理出软件工程师开发过程中所需的各项技术技能,结合企业招聘需求和人才应聘痛点,基于公开、透明、公正的原则,甑别人才时确保真实业务场景、全部上机实操、所有过程留痕、存档不可篡改。

我们每天将都会精选CSDN站内技术文章供大家学习,帮助大家系统化学习IT技术。

官方文档

WSGI is not a server, a python module, a framework, an API or any kind of software. It is just an interface specification by which server and application communicate. Both server and application interface sides are specified in the PEP 3333. If an application (or framework or toolkit) is written to the WSGI spec then it will run on any server written to that spec.

从官方文档的解释看,WSGL就是一个Web应用程序,通过这个Web应用程序实现客户端的请求.

  1. 浏览器发送一个HTTP请求;

  2. 服务器收到请求,生成一个HTML文档;

  3. 服务器把HTML文档作为HTTP响应的Body发送给浏览器;

  4. 浏览器收到HTTP响应,从HTTP Body取出HTML文档并显示。

WSGL的接口定义

WSGI application接口应该实现为一个可调用对象,例如函数、方法、类、含 call 方法的实例。这个可调用对象可以接收2个参数:

一个字典,该字典可以包含了客户端请求的信息以及其他信息,可以认为是请求上下文,一般叫做environment(编码中多简写为environ、env); 
一个用于发送HTTP响应状态(HTTP status )、响应头(HTTP headers)的回调函数。 
同时,可调用对象的返回值是响应正文(response body),响应正文是可迭代的、并包含了多个字符串。

此处定义一个函数即可,通过这个函数处理Http请求

def application(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/html')])
    return '<h1>Hello, web!</h1>'

完整代码如下:

# encoding=utf-8

from wsgiref.simple_server import make_server


# 使用environ获取请求类型和Url参数
def my_application(environ, start_response):
    start_response('200 OK', [{'Content-Type': 'text/html'}])
    return '<h1>Hello World</h1>'


# 创建一个服务器,监听端口为80
httpd = make_server('', 80, my_application)
print 'Service Start....'
# 开始监听Http请求
httpd.serve_forever()

启动此python脚本后,访问80端口(浏览器),可以看到”Hello World”字样

使用Flask框架处理Http请求

这里只介绍简单的Flask框架的使用,从最基本的路由转发功能开始

Flask使用装饰器的模式设置路由,需要在方法名前面加上@app.route()进行装饰

此处处理的路由 
1. GET /:首页,返回Home; 
2. GET /signin:登录页,显示登录表单; 
3. POST /signin:处理登录表单,显示登录结果。

# coding=utf-8
# !/usr/bin/env python


from flask import Flask
from flask import request

app = Flask(__name__)


# Flask使用装饰器的模式设置路由
@app.route('/', methods=['GET'])
def home():
    return '<h1>this is home page</h1>'


@app.route('/signin', methods=['GET'])
def sign_form():
    return '''
        <form action="/signin" method="post">
            <p>用户名:<input name="username" /></p>
            <p>密码:<input name="password" /></p>
            <p><button type="submit">Sign In</button></p>
        </form>
    '''


@app.route('/signin', methods=['POST'])
def sign_in():
    if request.form['username'] == 'admin' and request.form['password'] == '123':
        return '<h2>Hello admin </h2>'
    return '<h2>Invalid username or password</h2>'


if __name__ == '__main__':
    app.run()# 启动Web 监听,默认是5000端口

关于CSDN软件工程师能力认证

      CSDN软件工程师能力认证(以下简称C系列认证)是由中国软件开发者网CSDN制定并推出的一个能力认证标准。C系列认证历经近一年的实际线下调研、考察、迭代、测试,并梳理出软件工程师开发过程中所需的各项技术技能,结合企业招聘需求和人才应聘痛点,基于公开、透明、公正的原则,甑别人才时确保真实业务场景、全部上机实操、所有过程留痕、存档不可篡改。C系列认证的宗旨是让一流的技术人才凭真才实学进大厂拿高薪,同时为企业节约大量招聘与培养成本,使命是提升高校大学生的技术能力,为行业提供人才储备,为国家数字化战略贡献力量。

 

了解详情可点击:CSDN软件工程师能力认证介绍

 

本文出处:https://blog.csdn.net/y874961524/article/details/52343917?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161423932716780262570246%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161423932716780262570246&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v29-2-52343917.pc_search_result_before_js&utm_term=wsgl框架&spm=1018.2226.3001.4187

 

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值