Python 来自浏览器的Django帖子URL
我正在浏览Django教程,我想知道如何从浏览器发布对模型的更改。以下是网址:Python 来自浏览器的Django帖子URL,python,django,python-2.7,Python,Django,Python 2.7,我正在浏览Django教程,我想知道如何从浏览器发布对模型的更改。以下是网址: url(r'^(?P<person_id>\d+)/updatePerson/$', views.updatePerson, name='updatePerson') ) 我尝试的url是: <serveraddress>/maps/1/updatePerson/?lat=20&lon=20&task=hangOut /map
url(r'^(?P<person_id>\d+)/updatePerson/$', views.updatePerson, name='updatePerson')
)
我尝试的url是:
<serveraddress>/maps/1/updatePerson/?lat=20&lon=20&task=hangOut
/maps/1/updatePerson/?lat=20&lon=20&task=hangOut
我得到这个错误:
MultiValueDictKeyError at /maps/1/updatePerson/
"Key 'lat' not found in <QueryDict: {}>"
Request Method: GET
Request URL: <serveraddress>/maps/1/updatePerson/?lat=20
Django Version: 1.5.2
Exception Type: MultiValueDictKeyError
Exception Value:
"Key 'lat' not found in <QueryDict: {}>"
Exception Location: D:\Python\lib\site-packages\django\utils\datastructures.py in __getitem__, line 295
Python Executable: D:\Python\python.exe
Python Version: 2.7.5
Python Path:
['C:\\GXM_LABS\\gxm_maps',
'D:\\Python\\lib\\site-packages\\setuptools-1.1.3-py2.7.egg',
'D:\\Python\\lib\\site-packages\\django_evolution-0.6.9-py2.7.egg',
'D:\\Python\\lib\\site-packages\\south-0.8.2-py2.7.egg',
'C:\\Windows\\system32\\python27.zip',
'D:\\Python\\DLLs',
'D:\\Python\\lib',
'D:\\Python\\lib\\plat-win',
'D:\\Python\\lib\\lib-tk',
'D:\\Python',
'D:\\Python\\lib\\site-packages']
Server time: Sat, 7 Sep 2013 16:42:14 -0400
/maps/1/updatePerson处的多值错误/
“在中找不到注册表项'lat'”
请求方法:获取
请求URL:/maps/1/updatePerson/?lat=20
Django版本:1.5.2
异常类型:多值DictKeyError
异常值:
“在中找不到注册表项'lat'”
异常位置:D:\Python\lib\site packages\django\utils\datastructures.py,在第295行的
Python可执行文件:D:\Python\Python.exe
Python版本:2.7.5
Python路径:
['C:\\GXM\U实验室\\GXM\U地图',
'D:\\Python\\lib\\site packages\\setuptools-1.1.3-py2.7.egg',
'D:\\Python\\lib\\site packages\\django_evolution-0.6.9-py2.7.egg',
'D:\\Python\\lib\\site packages\\south-0.8.2-py2.7.egg',
'C:\\Windows\\system32\\python27.zip',
'D:\\Python\\DLLs',
'D:\\Python\\lib',
'D:\\Python\\lib\\plat win',
'D:\\Python\\lib\\lib tk',
'D:\\Python',
'D:\\Python\\lib\\site包']
服务器时间:2013年9月7日星期六16:42:14-0400
我应该在url定义中使用正则表达式来捕捉值吗?还是我在不直截了当地接近这一点?我正在与教程一起工作,但修改它们以适应我在一旁做的一些工作。我真的不想要用户输入的表单,因为从长远来看,我将从远程位置(智能手机)发布这些数据,因此,一个真正能够提交这些数据的网页对我来说没有直接发布这些更改的能力那么有趣。您应该从
请求中读取查询参数。GET
而不是请求。post
因为您正在发出GET请求(请参阅错误页面上的请求方法:GET
)
仅供参考,还有以下词典:
为了方便起见,一个类似字典的对象首先搜索POST,
那就去吧。灵感来自PHP的$\u请求
但是,使用它不是一个好的实践。最好是明确的。您应该从
请求中读取查询参数。GET
而不是请求。POST
因为您正在发出GET请求(请参阅错误页上的请求方法:GET
)
仅供参考,还有以下词典:
为了方便起见,一个类似字典的对象首先搜索POST,
那就去吧。灵感来自PHP的$\u请求
但是,使用它不是一个好的实践。最好是明确的。谢谢,我改为get,但queryDict仍然是空的,这是根本问题。你能提供更多关于如何设置的细节吗?谢谢,我改为get,但是queryDict仍然是空的,这是根本问题。你能提供更多关于如何设置的细节吗?
MultiValueDictKeyError at /maps/1/updatePerson/
"Key 'lat' not found in <QueryDict: {}>"
Request Method: GET
Request URL: <serveraddress>/maps/1/updatePerson/?lat=20
Django Version: 1.5.2
Exception Type: MultiValueDictKeyError
Exception Value:
"Key 'lat' not found in <QueryDict: {}>"
Exception Location: D:\Python\lib\site-packages\django\utils\datastructures.py in __getitem__, line 295
Python Executable: D:\Python\python.exe
Python Version: 2.7.5
Python Path:
['C:\\GXM_LABS\\gxm_maps',
'D:\\Python\\lib\\site-packages\\setuptools-1.1.3-py2.7.egg',
'D:\\Python\\lib\\site-packages\\django_evolution-0.6.9-py2.7.egg',
'D:\\Python\\lib\\site-packages\\south-0.8.2-py2.7.egg',
'C:\\Windows\\system32\\python27.zip',
'D:\\Python\\DLLs',
'D:\\Python\\lib',
'D:\\Python\\lib\\plat-win',
'D:\\Python\\lib\\lib-tk',
'D:\\Python',
'D:\\Python\\lib\\site-packages']
Server time: Sat, 7 Sep 2013 16:42:14 -0400