Django自定义装饰器的不能正常运行的问题
view.py的代码
from .tools import user_login_required
# Create your views here.
@user_login_required('1')
def index(request):
return render(request, "home.html")
2.tools.py代码
def user_login_required(user_type):
print("------->>>" + user_type)
def decorator(func):
print("----->>>>>>> %s" % func.__name__)
@functools.wraps(func)
def wrapper(*args, **kw):
print("这里为何不执行?")
return func(*args, **kw)
print("这里执行了吗?")
return wrapper
return decorator
运行结果显示
Django version 1.8.3, using settings 'MyWeb.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
------->>>1
----->>>>>>> index
这里执行了吗?
[15/Feb/2016 15:31:56]"GET / HTTP/1.1" 200 1714
为何少打印了一句话啊???并且如果注释掉return func
index界面仍然正常显示
-----更新----
找到原因了,是因为我的url配置错了,首页的view函数不是这一个,即打开http://127.0.0.1:8000/
的时候没有执行上面这个函数,但是user_login_required
函数为什么有输出啊,按理说不该输出啊。。?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不信,去试了一下:
发现一切正常。因此得出结论: