django 溫習筆記


#######################數據模型models.py#######################
#####################################################################
from django.db import models
class User(models.Model):
    models.CharField(max_length=45)
    models.TextField()
    models.BooleanField()
    models.DateTimeField(default=datetime.datetime.now())
    models.IntegerField()
    models.ForeignKey("Achievement", related_name='achievement', verbose_name="achievement")

    class Meta:
        db_table = '..'
        verbose_name = u'用戶'

    def __unicode__(self):
        return self.name
    
#######################HTTP請求urls.py#######################
#####################################################################
from django.conf.urls import patterns, include, url

urlpatterns = patterns('blog.views'
    url(r'^$', 'index', name='index'),
    url(r'blog/new/^$', 'new_blog'),
    url(r'^blog/topics/?P<topic_name>\w+/new/$', 'new_topic', name='new_topic'),
    url(r'^blog/(?P<yesr>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/$', 'blog'),
)

urlpatterns += patterns('guestbook.views',
    url(r'^guestbook/$', 'index'),
    url(r'^guestbook/add$', 'add_guestbook'),
)

urlpatterns += patterns('catalog.views',
    url(r'^catalog/$', 'catalog', name='catalog'),
)


#######################視圖函數views.py#######################
#####################################################################
person_01 = Person.objects.all().order_by("-first_name")[:7] #排序、限制數量
person_02 = Person.objects.get()    #查詢不到就會報錯,可以使用try:  except 語句或者get_object_or_404通用視圖函數
person_03 = Person.objects.filter() #返回格式爲列表
person_04 = Person.objects.exclude()

Q和~Q組合查詢關鍵字
from djngo.db.models import Q
specific_does = Person.objects.filter(last="Doe").exclude(Q(first="John") | ~Q(middle="Quincy"))

from django.shortcuts import render_to_response
from django.http import Http404
from django.shortcuts import get_object_or_404, get_list_or_404

from myapp.models import Person

import traceback

from django.http import HttpResponse
import json
關於request
request.method
request.path
request.user
request.META
request.encoding
request.FILES

def cart(req):
    result = []
    user = req.user
    if user.is_active:
        result.append({"status": "success" ,"user_id": usser.id})
    else:
        result.append({"status": "fail"})
    return HttpResponse(json.dumps(result))

def personal_detail(request, id):
    try:
        person = Person.objects.get(id=id)
    except Person.DoesNotExist:
        raise Http404
        # or print traceback.format_exc()
    
    return render_to_response("person_detail.html", {"person": person})

def personal_detail(request, id):
    person = get_object_or_404(Person, pk=id)
    
    return render_to_response("person_detail.html", {"person": person})
        
#######################模板渲染templates#######################
#####################################################################
模板語法
{% for item in item_list %}
    <li>{{ item }}</li>
    <li>{{ len(item) }}</li>
{% endfor %}

模板過濾器filter
示例:用過濾器把一個字符串列表轉換成小寫
<ul>
{% for string in string_list %}
    <li>{{ string | lower }}</li>
{% endfor %}
<ul>

<table>
    <tr>
    <th>Name</th>
    <th>Available?</th
    </tr>
    {% for person in person_list %}
    <tr>
    <td>{{ person.name }}</td>
    <td>{{ person.is_avaialble|yesno:"Yes, No" }}</td>
    </tr>
    {% endfor %}
</table>

標籤
{% ifequal object_list|length 10 %}
    <ul>
    {% for item in item_list %}
        <li>{{ item }}</li>
    {% endfor %}
    </ul>
{% endif %}

{% ifequal object_list|length_is:10 %}
    <ul>
    {% for item in item_list %}
        <li>{{ item }}</li>
    {% endfor %}
    </ul>
{% endif %}




form


wedget















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章