- 创建 add.py:
from
django.http
import
HttpResponse
text
=
'''
<form method="post" action="/add/">
<input type="text" name="a" value="%d"> + <input type="text" name="b" value="%d">
<input type="submit" value=" = "> <input type="text" value="%d">
</form>
'''
def
index(request):
if
request.POST.has_key(
'
a
'
):
a
=
int(request.POST[
'
a
'
])
b
=
int(request.POST[
'
b
'
])
else
:
a
=
0
b
=
0
return
HttpResponse(text
%
(a, b, a
+
b))
注意 action 为 /add/, 在Django中链接一般都要带有 '/', 不然有可能得不到 Post 的数据。
这里有一个方法index, 所有在 view 中的方法第一个参数都会由 Django 传入 request 对象,它就是请求数据对象, 由Django自动生成。其中有 GET 和 POST 属性, 分别保存不同的提交方式的数据,都可以象字典一样工作。 - 修改urls.py:
from
django.conf.urls.defaults
import
*

urlpatterns
=
patterns(
''
,
#
Example:
#
(r'^testit/', include('newtest.apps.foo.urls.foo')),
(r
'
^$
'
,
'
newtest.helloworld.index
'
),
(r
'
^add/$
'
,
'
newtest.add.index
'
),
#
Uncomment this for admin:
#
(r'^admin/', include('django.contrib.admin.urls')),
)
以增加对 add 的 url 映射。 - 启动web server 并测试
http://localhost:8000/add
补充:
- form中的"method=post", 也可以get, 但在Django的设计风格中认为, 使用POST表示要对数据进行修改,使用GET则只是获取。
- 方法中的参数时从url中通过正则表达式解析出来的,或者是在 url_conf(即urls.py文件)中指定。 使用request.POST 或 request.GET或者另一个通吃的方法 request.REQUESt, 它们都是字典。
本文介绍如何使用Django框架创建一个简单的加法应用。该应用包含一个表单供用户输入两个数字,并显示这两个数字相加的结果。文章还介绍了如何配置URL映射以及处理POST请求。
495

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



