本站首页    管理页面    写新日志    退出


«September 2025»
123456
78910111213
14151617181920
21222324252627
282930


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7621224
建立时间:2006年5月29日




[Django]Django教程
软件技术

lhwork 发表于 2007/2/1 11:54:54

一、Hello Django!1、生成项目目录 django-admin.py startproject newtedst这样就在当前目录下创建了一个newtest 目录,里面有四个文件:__init__.py  表示这是一个 Python 的packagemanage.py  提供简单化的 django-admin.py 命令,特别是可以自动进行DJANGO_SETTINGS_MODULES和 PYTHONPATH 的处理settings.py  Django的配置文件 uls.py          url映射处理文件,Django 的url映射是url对于某个模块方法的映射,目前不能自动完成2、hellodjango在 newtest 目录下创建一个文件 hellodjango.py 内容为: from django.http import HttpResponsedef index(request):   return HttpResponse("Hello, Django.")3、URL Dispatch在 Django 中,真正调用时需要通过 URL Dispatch 来实现url与模块方法的映射。修改urls.py: from django.conf.urls.defaults import *urlpatterns = patterns('',   # Example:   # (r'^newtest/', include('newtest.apps.foo.urls.foo')),   (r'^$', 'newtest.hellodjango.index'),   # Uncomment this for admin:#     (r'^admin/', include('django.contrib.admin.urls')),)urlpatterns实际上为一个包含了某一url正则表达式及其对应的callable object的list。4、启动服务器Django 为了开发方便,自带了一个用于开发的 web server: python manage.py runserver二、使用form1、一个简单的 web 加法器 add.py from django.http import HttpResponsetext = """<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') and request.POST.has_key('b'):       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 数据。有关更详细的关于常见问题可以参阅 NewbieMistakes 文档。如果你想从 POST 或 GET 数据中得到值,使用 request.POST 或 request.GET 或还有一个可以“统吃”的方法 request.REQUEST ,它们是一个dict。2、增加 add 的 url 映射 from django.conf.urls.defaults import *urlpatterns = patterns('',   # Example:   # (r'^newtest/', include('newtest.apps.foo.urls.foo')),   (r'^$', 'newtest.hellodjango.index'),   (r'^add/$', 'newtest.add.index'),   # Uncomment this for admin:#     (r'^admin/', include('django.contrib.admin.urls')),)三、使用模板1、创建 list.py以显示一个通讯录为例说明: #coding=utf-8from django.shortcuts import render_to_responseaddress = [   {'name':'张三', 'address':'地址一'},   {'name':'李四', 'address':'地址二'}   ]def index(request):   return render_to_response('list.html', {'address': address})render_to_response 可以直接调用模板并返回生成好的文本。它接收两个参数,第一个是模板的文件名。第二个参数是一个字典,这里只有一个 Key ,名字是 address ,它的值是一个字典的列表。2、在 newtest 中创建 templates 目录修改 settings.py: TEMPLATE_DIRS = (   # Put strings here, like "/home/html/django_templates".   # Always use forward slashes, even on Windows.   './templates',)如果有多个模板目录,加进去就行了。Django 会按顺序搜索的。Django 还支持在 app 中定义一个 templates 目录。这样 Django 在启动时会检查所有安装的的 app 的 templates 目录,如果存在,则将路径的搜索放在 TEMPLATE_DIRS 之后。3、创建 templates/list.html <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><h2>通讯录</h2><table border="1"> <tr><th>姓名</th><th>地址</th></tr> {% for user in address %} <tr> <td>{{ user.name }}</td> <td>{{ user.address }}</td> </tr>{% endfor %}</table>4、增加 list 的 url 映射 from django.conf.urls.defaults import *urlpatterns = patterns('',   # Example:   # (r'^testit/', include('newtest.apps.foo.urls.foo')),   (r'^$', 'newtest.hellodjango.index'),   (r'^add/$', 'newtest.add.index'),   (r'^list/$', 'newtest.list.index'),   # Uncomment this for admin:#     (r'^admin/', include('django.contrib.admin.urls')),)


阅读全文(6079) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.043 second(s), page refreshed 144786077 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号