使用字典管理请求路径 | 手把手教你入门Python之一百一十七-阿里云开发者社区

开发者社区> 温柔的养猫人> 正文

使用字典管理请求路径 | 手把手教你入门Python之一百一十七

简介: 本节通过案例实现使用字典管理请求路径。
+关注继续查看

上一篇:方法的封装 | 手把手教你入门Python之一百一十六
下一篇:requests模块的使用 | 手把手教你入门Python之一百一十八

本文来自于千锋教育在阿里云开发者社区学习中心上线课程《Python入门2020最新大课》,主讲人姜伟。

使用字典管理请求路径

编写函数,通过url(字典)添加新的请求路径,回调函数实现结果。

url = {
    '/': index,
    '/test': show_test,
    '/demo': show_demo,
    '/hello': show_hello,
    '/info': show_info,
    '/foo': show_foo
}

示例:

import json
from wsgiref.simple_server import make_server


def load_file(file_name, **kwargs):
    try:
        with open('pages/' + file_name, 'r', encoding='utf8') as file:
            content = file.read()
            if kwargs:  # kwargs = {'username':'zhangsan','age':19,'gender':'male'}
                content = content.format(**kwargs)
                # {username},欢迎回来,你今年{age}岁了,你的性别是{gender}.format(**kwargs)
            return content
    except FileNotFoundError:
        print('文件未找到')


def index():
    return '欢迎来到我的首页'


def show_test():
    # return json.dumps({'name': 'zhangsan', 'age': 18})
    return json.dumps(['zhangsan', 'lisi', 'wangwu', 'jack'])


def show_demo():
    return load_file('xxxx.txt')


def show_hello():
    return load_file('hello.html')


def show_info():
    return load_file('info.html', username='zhangsan', age=19, gender='male')


def show_foo():
    return '我是foo'


url = {
    '/': index,
    '/test': show_test,
    '/demo': show_demo,
    '/hello': show_hello,
    '/info': show_info,
    '/foo': show_foo
}


def demo_app(environ, start_response):
    path = environ['PATH_INFO']
    status_code = '200 OK'

    method = url.get(path)
    if method:
        response = method()
    else:
        status_code = '404 Not Found'
        response = '页面走丢了'

    start_response(status_code, [('Content-Type', 'text/html;charset=utf8')])
    return [response.encode('utf8')]


if __name__ == '__main__':
    httpd = make_server('', 8090, demo_app)
    sa = httpd.socket.getsockname()
    print("Serving HTTP on", sa[0], "port", sa[1], "...")
    httpd.serve_forever()

配套视频

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 29 章 监控磁盘使用
第 29 章 监控磁盘使用 目录 29.1. 判断磁盘用量 29.2. 磁盘满失败 本章讨论如何监控PostgreSQL数据库系统的磁盘使用情况。 本文转自PostgreSQL中文社区,原文链接:第 29 章 监控磁盘使用
685 0
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 29 章 监控磁盘使用_29.1. 判断磁盘用量
29.1. 判断磁盘用量 每个表都有一个主要的堆磁盘文件,大多数数据都存储在其中。如果一个表有着可能会很宽(尺寸大)的列, 则另外还有一个TOAST文件与这个表相关联, 它用于存储因为太宽而不能存储在主表里面的值(参阅第 66.2 节)。
843 0
如何使用VC6编译sqlite3源码生成动态链接库(版本:sqlite-source-3_6_23_1)
如何使用VC6编译sqlite-source-3_6_23_1 一.版本: 2010-Mar-30  Version3.6.23.1 二.源代码获取: 在官网的http://www.sqlite.
741 0
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 29 章 监控磁盘使用_29.2. 磁盘满失败
29.2. 磁盘满失败 一个数据库管理员最重要的磁盘监控任务就是确保磁盘不会写满。一个写满了的数据磁盘可能不会导致数据的崩溃,但它肯定会让系统变得不可用。如果保存 WAL 文件的磁盘变满,会发生数据库服务器致命错误并且可能发生关闭。
1072 0
Python:使用Flask-APScheduler管理定时任务
Python:使用Flask-APScheduler管理定时任务
11 0
学生管理系统 | 手把手教你入门Python之八十二
本节介绍了一个较为完整的学生管理系统的开发流程。
1151 0
self的使用 | 手把手教你入门Python之五十二
通过 self.属性名 可以访问到这个对象的属性;通过 self.方法名() 可以调用这个对象的方法。
861 0
HaaS轻应用(Python): 使用“千里传音“服务打造您的专属云喇叭
如何使用Python 轻应用,连接阿里云的千里传音服务,打造一个现象级的云喇叭产品。
115 0
【资料下载】Python 第七讲——从实战中了解异步爬虫aiohttp的使用
直播时间:3月12日(周二)20:00——21:00 直播讲师 :陈祥安——阿里特邀技术专家 有着丰富的爬虫工作经验,从c#语言转入到python语言,擅长各种爬虫技术,熟悉大规模爬虫开发,热爱并喜欢钻研python。
1839 0
1172
文章
2
问答
来源圈子
更多
Python学习资料大全,包含Python编程学习、实战案例分享、开发者必知词条等内容。
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载