1.在项目根目录下新建一个Python Package
2.在com目录下新建一个CommonFunctions.py
# coding:utf-8
# 定义一个函数专门用来导入类
def LoadClass(pgkPath,className):
pgk_main = __import__(pgkPath)
split_pgk = pgkPath.split(".")
for p in split_pgk[1:]:
pgk_main = getattr(pgk_main,p) # 加载到文件
pgk_main = getattr(pgk_main,className) #加载到类
ret_class = pgk_main()
return ret_class
加载类的函数,传入参数:文件路径和类名
3.user目录下新建UserLoginController.py
# coding:utf-8
from django.shortcuts import render,render_to_response
class UserLogin():
def run(self):
msg = {'result': ''}
return render_to_response("login.html",msg)
run方式显示登录页HTML模板
4.怎么通过LoadClass()函数类动态加载?
from com.CommonFunctions import LoadClass
def default(request,c1,c2):
getClass = LoadClass("com."+c1+"."+c2+"Controller",c2)
return getClass.run()
这样当我们在浏览器访问http://127.0.0.1:8000/user/UserLogin,
其实就指向了UserLoginController.py下的UserLogin类,UserLogin类的run()方法响应登录页面的HTML模板。
本文介绍了一种在Python中实现类动态加载的方法。通过定义LoadClass函数来根据传入的包路径和类名加载对应的类,并在UserLoginController.py中演示了如何使用此函数来响应登录页面请求。
168万+

被折叠的 条评论
为什么被折叠?



