天天看點

Django學習筆記-模闆

簡單點來說,網站無外乎就是從前端得到資料,資料在後端處理,将資料傳回給前端。

這裡就不說如何擷取前端資料了。

一、資料傳回給前端

之前的demo中有一種:

return HttpResponse(u"接收這個請求後,傳回的資料")           

但是這種基本是用不到了,正常的做法是URL中的name屬性和VIEW中render。當然也可能使用JSON等等來實作資料傳輸。

直接看demo吧,建立的應用叫my_tem,是以網頁為

my_tem/home.html

views.py

def home(request):
    m_str = u"前台正在接收這個string"
    m_list = ['HTML', 'CSS', 'jQuery', 'Python', 'Django']
    m_dict = {'name': 'zhaoguangyao', 'sex': '男'}
    m_range = [i for i in range(100)]

    return render(request, 'my_tem/home.html', {'m_str': m_str,
                                                'm_list': m_list,
                                                'm_dict': m_dict,
                                                'm_range': m_range})           

urls.py

urlpatterns = [
    url(r'^$', xx.home, name='home'),
    url(r'^admin/', admin.site.urls),
]           

home.html

<!DOCTYPE html>
<html>
<head>
    <title>zhaoguangyao</title>
</head>
<body>


templates<br>
{{m_str}}<br>
<br>


這是一個list,将要用for循環周遊:<br>
{% for i in m_list %}
{{ i }}<br>
{% endfor %}


<br>
這是一個字典,将要輸出字典裡的内容:<br>
名字:{{ m_dict.name }}<br>
性别:{{ m_dict.sex }}<br>

<br>
也可以周遊字典:<br>
{% for key, value in m_dict.items %}
{{ key }} : {{ value }}<br>
{% endfor %}


<br>
便利一下1-100,但是這樣最後也有逗号:<br>
{% for i in m_range %}
{{ i }},
{% endfor %}<br>
<br>
周遊裡面加入判斷:<br>
{% for i in m_range %}
{{ i }}{% if forloop.last %}<br>{% else %},{% endif %}
{% endfor %}


<br>
<span style="color: red;">這個就重要了,模闆上得到對應的視圖</span><br>
{% url 'add' 4 5 %}<br>

<br>
<span style="color: red;">還可以用as語句講内容差別名,就相當于一個變量,然後就能使用了</span>
{% url 'add' 4 5 as m_url%}
<br>
<a href="{{ m_url }}">連接配接到:{{ m_url }}</a><br>

<br>
{{ request.user }}
<br>
{% if request.user.is_authenticated %}
    {{ request.user.username }},您好!
{% else %}
    請登入,這裡放登陸連結
{% endif %}<br>

{{ request.path }}<br>

{{ request.GET.urlencode }}<br>

{{ request.path }}?{{ request.GET.urlencode }}<br>

<a href="{{ request.path }}?{{ request.GET.urlencode }}&delete=1">
    目前網址加參數 delete
</a>


</body>
</html>           

項目做完了,但是好多東西都沒有整理出來。比如django與json,ajax等等。