以面向对象方式获取?格式的URL中的参数时,函数定义加self程序报错
来源:2-6 项目练习-Django的View、路由参数实践

幕布斯742172
2020-04-04
如果以面向对象的形式构造应用views.py,若在get_message函数增加self参数,程序会报错如下:
TypeError at /e2_app/message
get_message() missing 1 required positional argument: 'request’
Request Method:
GET
Request URL:
http://127.0.0.1:8000/e2_app/message?info=txx
Django Version:
3.0.4
Exception Type:
TypeError
Exception Value:
get_message() missing 1 required positional argument: 'request’
Exception Location:
D:\ProgramData\Anaconda3\lib\site-packages\django\core\handlers\base.py in _get_response, line 113
Python Executable:
D:\ProgramData\Anaconda3\python.exe
Python Version:
3.7.4
class E2Views(View):
def get_message(**this,**request):
msg = request.GET.get(‘info’)
print(msg)
return HttpResponse(‘message:{0}’.format(msg))
但去除self参数后,就正常了
有点想不明白,烦请老师方便时解答!
1回答
-
deweizhang
2020-04-05
你这个getmesessge不是标准get函数 def get(self,request): 你使用的是自定义函数的方式 如果你对面向对象与pythonoop开发足够了解 那么可以。但我感觉似乎还不是。建议你跟着课程来走。另外课程使用的是python3.5或3.6
django版本是2.1.2 不同的版本需要考虑各种不兼容性,为了课程顺利学习 希望可以和课程相同的版本012020-04-05
相似问题