博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python之通过“反射”实现不同的url指向不同函数进行处理(反射应用一)
阅读量:7078 次
发布时间:2019-06-28

本文共 1360 字,大约阅读时间需要 4 分钟。

1、简单概括

下面定义了三个不同的模块用于测试,account.py 模块里有login()和logout(),admin.py模块里有index()。在这里模拟一个url的访问,意思是通过访问不同的url来指向到不同的模块里的函数进行处理,也可以说是处理这个url请求。那么这个就是通过“反射”机制来实现的。

拓展一下,现在几乎所有的语言(不管是php,python,java,.net)的web框架都是通过“反射”机制的方式来根据URL的不同来指向到不同函数里边的不同的方法来执行。

2、account.py 模块

1
2
3
4
5
6
7
8
9
10
11
12
# -*- coding: utf-8 -*-
"""
Created on Sun Nov 13 23:19:03 2016
 
@author: toby
"""
 
def 
login():
    
print 
'login'
     
def 
logout():
    
print 
'logout'

3、admin.py 模块

1
2
3
4
5
6
7
8
9
# -*- coding: utf-8 -*-
"""
Created on Sun Nov 13 23:19:23 2016
 
@author: toby
"""
 
def 
index():
    
print 
'欢迎登录管理后台'

4、index-test.py 模块

1
2
3
4
5
6
7
8
9
10
11
12
13
# -*- coding: utf-8 -*-
"""
Created on Sun Nov 13 23:20:27 2016
 
@author: toby
"""
 
data 
= 
raw_input
(
'请输入地址:'
)
 
array 
= 
data.split(
'/'
)    
#url规则,通过“/”来进行分割,分割后则索引0的值是模块,索引1的值是函数名
userspance 
= 
__import__
(array[
0
])    
#这里导入模块,模块位于分割后的索引0位置
func 
= 
getattr
(userspance,array[
1
]) 
#这里通过getattr来实现反射,索引1的位置为函数
func()    
#执行反射后的函数

5、下面是测试结果

toby@toby-virtual-machine:~/workspace/pydev/main$ python index-test.py 

请输入地址:account/login
login
toby@toby-virtual-machine:~/workspace/pydev/main$ python index-test.py 
请输入地址:admin/index    #admin是模块,index是该模块里的一个函数 (这里模拟一个url,也可以想象成 http://192.168.1.100/admin/index)

欢迎登录管理后台    #这个输出就是index()函数里的一个动作

toby@toby-virtual-machine:~/workspace/pydev/main$ 

本文转自 TtrToby 51CTO博客,原文链接:http://blog.51cto.com/freshair/1872650

转载地址:http://jzjml.baihongyu.com/

你可能感兴趣的文章
debian启动项与服务设置
查看>>
WinPcap编程环境设置
查看>>
基于openssl的https服务配置
查看>>
从 CentOS 5.5 中精简出属于自己的专属Linux (三)
查看>>
C和指针---第十五章:输入/输出函数
查看>>
Linux打开txt文件乱码的解决方法
查看>>
jquery中的ajax
查看>>
HTML5 Geolocation 地理位置API的使用
查看>>
强大的时间库moment.js常用方法
查看>>
log file sync事件
查看>>
MXNet动手学深度学习笔记:多类别分类
查看>>
License介绍
查看>>
2015年12月国内浏览器市场份额:IE卫冕失败
查看>>
centos mysql5.6 内存过大
查看>>
前端程序猿需要知道的一些网站,工具和学习途径
查看>>
Rayeager PX2开发板的八大特性
查看>>
首帧秒开+智能鉴黄+直播答题,阿里云直播系统背后技术大起底
查看>>
oracle主外键关联
查看>>
【shell】CentOS6.5利用pptpd搭建***服务
查看>>
【C/C++】排序总结
查看>>