新博客地址:http://gorthon.sinaapp.com/
实现fibonacci数列(1,1,2,3,5,8,13,21,34,55,...)
1. newtest目录新建fibonacci.py
# _*_ coding:cp936 _*_ from django.http import HttpResponse html = '''<form method="post" action="/fibonacci/"> <input type="text" name="a" value="%d"> <input type="submit" value="%s"> <input type="text" value="%s"> </form>''' fib = lambda n:(n == 1 or n == 2) and 1 or fib(n-1) + fib(n-2) def index(request): tmp = '' if request.POST.has_key('a'): a = int(request.POST['a']) else: a = 1 for i in range(1,a+1): tmp += str(fib(i)) + ',' return HttpResponse(html % (a,u'计算', tmp))
2. urls.py添加映射(注意末尾的逗号):
(r'^fibonacci/$','newtest.fibonacci.index'),
3. 浏览器输入网址http://127.0.0.1:8000/fibonacci/
若出现下面问题:
##########################################################################
Forbidden (403)
CSRF verification failed. Request aborted.
Reason given for failure:
CSRF token missing or incorrect.
In general, this can occur when there is a genuine Cross Site Request Forgery, or when
Django's CSRF mechanism has not been used correctly. For POST forms, you need to ensure:
RequestContext
for the template, instead of Context
. {% csrf_token %}
template tag inside each POST form CsrfViewMiddleware
, then you must use csrf_protect
on any csrf_token
template tag, as well as those that accept the POST data. You're seeing the help section of this page because you have DEBUG = True
in your Django
settings file. Change that to False
, and only the initial error message will be displayed.
You can customize this page using the CSRF_FAILURE_VIEW setting.
##########################################################################
要到newtest目录下面的settings.py中查找MIDDLEWARE_CLASSES按照格式添加两行(注意末尾的逗号)
'django.middleware.csrf.CsrfResponseMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
再次访问http://127.0.0.1:8000/fibonacci/,输入一个正数,然后看结果。