日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時間:2023/12/10 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django学习笔记2:一个简单的开发实例 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Technorati 標簽: Python,Django

目標:通過開發(fā)一個簡單的Todo管理應用,熟悉Django的基本概念、和使用。

運行環(huán)境

Windows Vista + Python 2.7 + Django 1.5

準備工作

* 創(chuàng)建工程

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/,能夠正常訪問。

?

* 配置數(shù)據(jù)庫

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

生成數(shù)據(jù)庫表項:python manage.py syncdb

?

* 修改時區(qū)配置

TIME_ZONE = 'Asia/Shanghai'

?

# 創(chuàng)建實現(xiàn)Todo功能的 Model

python manage.py startapp todo

?

準備工作完成,接下來進行 todo model的開發(fā)。

?

應用Model的開發(fā)

* settings配置

編輯 mytodo/settings.py 中的下列屬性:

INSTALLED_APPS:添加對 todo model的支持;

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

?

* Model的實現(xiàn)

在 todo/models.py 文件中定義數(shù)據(jù)庫

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

這里定義了一個數(shù)據(jù)庫表 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'),

我們將實現(xiàn)三個view 函數(shù),分別實現(xiàn)顯示、添加、刪除 功能。

?

* View 函數(shù)實現(xiàn)

在 todo/views.py 文件中,實現(xiàn)view函數(shù)。

# '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 將數(shù)據(jù)傳遞給模板。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獲取表單提供的數(shù)據(jù),'task_msg’是表單中輸入文本框的name屬性。2) 數(shù)據(jù)添加后,調用HttpResponseRedirect 返回起始頁面。

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

說明:刪除的時候,需要指明刪除條目的ID,這個參數(shù)通過 entry_id傳入。在URL定義中,捕獲了ID,并且通過 ?P<entry_id> 定義了keyword 參數(shù)。

?

* Template定義

view函數(shù)中,引用了模板文件 todo/index.html,實現(xiàn)如下:

<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:一个简单的开发实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。