Technorati 标签: Python,Django

目标:通过开发一个简单的Todo管理应用,熟悉Django的基本概念、和使用。

运行环境

Windows Vista + Python 2.7 + Django 1.5

准备工作

* 创建工程

python C:\Python27\Lib\site-packages\django\bin\django-admin.py startproject mytodo

* 启动调试服务器

python manage.py runserver

Validating models...

0 errors found

October 11, 2012 - 11:06:08

Django version 1.5, using settings 'mytodo.settings'

Development server is running at http://127.0.0.1:8000/

Quit the server with CTRL-BREAK.

在浏览器中访问 http://127.0.0.1:8000/,能够正常访问。

* 配置数据库

修改 mytodo/settings.py, 使用sqlite3;

生成数据库表项:python manage.py syncdb

* 修改时区配置

TIME_ZONE = 'Asia/Shanghai'

# 创建实现Todo功能的 Model

python manage.py startapp todo

准备工作完成,接下来进行 todo model的开发。

应用Model的开发

* settings配置

编辑 mytodo/settings.py 中的下列属性:

INSTALLED_APPS:添加对 todo model的支持;

TEMPLATE_DIRS:配置模块使用的 template 位置;

* Model的实现

在 todo/models.py 文件中定义数据库

class TodoEntry(models.Model):task = models.CharField(max_length=120)status = models.IntegerField()create_date = models.DateTimeField('create date')def __unicode__(self):return self.task

这里定义了一个数据库表 TodoEntry,包含三个字段:task, status, create_date。

* 配置URL

编辑 mytodo/url.py 中的 urlpatterns,添加以下配置:

url(r'^todo/$', 'todo.views.index'),
url(r'^todo/add/$', 'todo.views.add'),
url(r'^todo/del/(?P<entry_id>\d+)/$', 'todo.views.delete'),

我们将实现三个view 函数,分别实现显示、添加、删除 功能。

* View 函数实现

在 todo/views.py 文件中,实现view函数。

# 'todo.views.index' def index(request):all_todo_list = TodoEntry.objects.all().order_by('-create_date')return render_to_response('todo/index.html', {'all_todo_list' : all_todo_list}, context_instance = RequestContext(request))

说明:1) 加载todo/index.html模板,并通过变量名 all_todo_list 将数据传递给模板。2) 将上下文实例传入,配合模板文件中的 {% csrf_token %} 标记的需求。

# 'todo.views.add'def add(request):try:task_msg = request.POST['task_msg']entry = TodoEntry(task = task_msg, status = 1, create_date = timezone.now())entry.save()except (KeyError):return render_to_response('todo/index.html', {'error_msg' : "no task msg isprovided!"}, context_instance = RequestContext(request))return HttpResponseRedirect("/todo/")

说明:1) 通过HttpRequest.POST获取表单提供的数据,'task_msg’是表单中输入文本框的name属性。2) 数据添加后,调用HttpResponseRedirect 返回起始页面。

# 'todo.views.delete'def delete(request, entry_id):entry = get_object_or_404(TodoEntry, pk=entry_id)entry.delete()return HttpResponseRedirect("/todo/")

说明:删除的时候,需要指明删除条目的ID,这个参数通过 entry_id传入。在URL定义中,捕获了ID,并且通过 ?P<entry_id> 定义了keyword 参数。

* Template定义

view函数中,引用了模板文件 todo/index.html,实现如下:

<form action = "/todo/add/" method = "POST">{% csrf_token %}New: <input type = "text" name = "task_msg" /><input type = "submit" value = "Add" />
</form>{% if all_todo_list %}{% for entry in all_todo_list %}<p> {{ entry.task }}<a href="/todo/del/{{ entry.id }}/"> delete </a></p>{% endfor %}
{% else %}<p>No todo entry are available.</p>
{% endif %}

说明:1) 表单使用了POST 类型;2) 使用变量 entry.id 将ID填到URL中,从而将删除操作定位到具体的条目。

-----------------

Weichsel

2012.10.15

转载于:https://www.cnblogs.com/weichsel/archive/2012/10/15/2724108.html

Django学习笔记2:一个简单的开发实例相关推荐

  1. Flutter学习笔记 —— 完成一个简单的新闻展示页

    Flutter学习笔记 -- 完成一个简单的新闻展示页 前言 思路分析 案例代码 结束语 上图 前言 刚学Flutter不久,今天我们来看看如何使用 Container & ListView实 ...

  2. Windows程序设计学习笔记(1):一个简单的windows程序

    <Windows程序设计>(第五版)(美Charles Petzold著) 1 #include<windows.h> 2 3 LRESULT CALLBACK WndProc ...

  3. uni-app学习笔记-实现一个简单统计图(三)

    根据原型需要,先来写一个统计图,其实和vue实现一个统计图的方法是一样的.axios请求Echarts折线图 https://www.jianshu.com/p/9f872bee0e6a 1:在HBu ...

  4. 学习笔记:latex.一个简单的个人实验报告模板及部分语法说明

    首先建立一个  my_report.cls  的配置文件.(以后可能会随着使用进行一些修改和补充) \ProvidesClass{my_report}%------------------------ ...

  5. OpenCascade学习笔记-创建一个简单的OpenCascade单文档

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Open ...

  6. 嵌入式开发学习笔记9-做一个好玩的LED闪烁

    嵌入式开发学习笔记9-做一个好玩的LED闪烁 前言 实际操作 程序功能 实现思路 程序源码 实现效果展示 前言 LED小灯闪烁实质是控制单片机上的I/O口,通过向I/O口循环输入高低电平,从而控制LE ...

  7. django 学习笔记

    django 学习笔记 启动虚拟机: workon bj18_py3 创建一个项目: django-admin.py startproject mysite 启动开发用服务器:从外层项目 mysite ...

  8. 千锋Django学习笔记

    千锋Django学习笔记 文章目录 千锋Django学习笔记 写在前面 1. MVC和MTV 2. Django简介 3. MTV简单流程 4. 和Model的简单对接 5. Model 6. Tem ...

  9. PHP学习笔记03:简单网上调查站点

    PHP学习笔记03:简单网上调查站点 网上调查站点由两个页面构成.第一个页面(vote.html文件)是一份问卷,问卷上只有一个问题"开发MySQL应用程序你最喜欢哪种编程语言?" ...

最新文章

  1. java为什么实现_为什么在java中这样实现了这样的实现?
  2. Maqetta源码运行
  3. 如何写Java文档注释(Java Doc Comments)
  4. keil5用jlink不到芯片_你了解JLink、STLink、ULink、JTAG、SWD、SWIM的区别吗
  5. oracle:sql查询
  6. 【Yarn】hadoop的yarn资源队列
  7. linux可配置哪些服务,不可不知 十大热门Linux服务器配置
  8. 0. Python3源码—编译
  9. scala method入门到熟悉
  10. Ubuntu 11.04 安装后要做的20件事
  11. 关于ISO27001信息安全管理体系的内容详细概括
  12. 菜鸟的spring security学习教程
  13. 软件功能测试点---总结大全
  14. roboware studio安装
  15. s3c2440 IIC AT24C08
  16. 微信公众号(订阅号)如何开通付费功能?
  17. (纪中)2417. Loan Repayment【数学】
  18. Windows10+YOLOv5训练自己的数据集
  19. bzoj4605 崂山白花蛇草水(动态开点线段树逃替罪羊重构K-D tree)
  20. 实操手册:如何在GKE上部署HTTP(S) Load Balancer及容器应用程式

热门文章

  1. java ListMapString,Object遍历的方法
  2. Jenkins 安装与使用--实例
  3. 大摩维持浩大游戏“增持”评级
  4. vue-resource全攻略
  5. nodejs常用模块-url
  6. 虚拟机vmware的连接方式以及IP端口,协议等概念
  7. 在Windows下如何创建虚拟环境(默认情况下)
  8. 浅谈微信smali注入
  9. [No0000112]ComputerInfo,C#获取计算机信息(cpu使用率,内存占用率,硬盘,网络信息)...
  10. javascript - 封装原生js实现ajax