1. 程式人生 > >django 學習一

django 學習一

django學習一

一、django模型
MTV模型:
Django的MTV模式本質是各組件之間為了保持松耦合關系,Django的MTV分別代表:
Model(模型):負責業務對象與數據庫的對象(ORM)
Template(模版):負責如何把頁面展示給用戶
View(視圖):負責業務邏輯,並在適當的時候調用Model和Template
此外,Django還有一個url分發器,它的作用是將一個個URL的頁面請求分發給不同的view處理,
view再調用相應的Model和Template

二、django基本命令
1.創建一個django project
#django-admin.py startproject mysite

manage.py ----- Django項目裏面的工具,通過它可以調用django shell和數據庫等。
settings.py ---- 包含了項目的默認設置,包括數據庫信息,調試標誌以及其他一些工作的變量。
urls.py ----- 負責把URL模式映射到應用程序。

2.在mysite目錄下創建應用,比如blog:
python manage.py startapp blog

3.啟動django項目
#python manage.py runserver 8080

4.同步更改數據庫表或字段
python manage.py makemigrations
python manage.py migrate

5.清空數據庫
python manage.py flush

6.創建超級管理員
python manage.py createsuperuser
python manage.py changepassword username

7.Django 項目環境終端
python manage.py shell


三、路由配置urlconf
URL配置(URLconf)就像Django 所支撐網站的目錄。它的本質是URL與要為該URL調用的視圖函數之間的映射表;你就是以這種方式告訴Django,對於這個URL調用這段代碼,對於那個URL調用那段代碼。
    ‘‘‘
    
    urlpatterns = [
         url(正則表達式, views視圖函數,參數,別名),
]


參數說明:

    一個正則表達式字符串
    一個可調用對象,通常為一個視圖函數或一個指定視圖函數路徑的字符串
    可選的要傳遞給視圖函數的默認參數(字典形式)
    一個可選的name參數

    ‘‘‘
    
正則配置
from django.conf.urls import urlfrom . import views

urlpatterns = [
    url(r‘^articles/2003/$‘, views.special_case_2003),
    url(r‘^articles/([0-9]{4})/$‘, views.year_archive),    #小括號表示分組,單座參數傳遞給視圖函數
    url(r‘^articles/([0-9]{4})/([0-9]{2})/$‘, views.month_archive),
    url(r‘^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$‘, views.article_detail),
    
]

有名分組

在Python 正則表達式中,命名正則表達式組的語法是(?P<name>pattern),其中name 是組的名稱,pattern 是要匹配的模式。
下面是以上URLconf 使用命名組的重寫:
from django.conf.urls import urlfrom . import views

urlpatterns = [
    url(r‘^articles/2003/$‘, views.special_case_2003),
    url(r‘^articles/(?P<year>[0-9]{4})/$‘, views.year_archive),
    url(r‘^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$‘, views.month_archive),
    url(r‘^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2})/$‘, views.article_detail),
]


小括號裏的month關鍵字傳遞給視圖函數

urlconf怎麽解析url:
URLconf 在請求的URL 上查找,將它當做一個普通的Python 字符串。不包括GET和POST參數以及域名。
例如,http://www.example.com/myapp/ 請求中,URLconf 將查找myapp/。
在http://www.example.com/myapp/?page=3 請求中,URLconf 仍將查找myapp/。
URLconf 不檢查請求的方法。換句話講,所有的請求方法 —— 同一個URL的POST、GET、HEAD等等 —— 都將路由到相同的函數。


四、視圖函數

HttpResponse: 返回客戶端響應內容
return  HttpResponse("ok")

render: 返回選然後的模板html文件
return render(request, 模板, 傳遞給模板的字典)

request: 請求對象

redirect: 頁面跳轉
return redirect(‘/index/‘)

五、模板

{{ 變量 }} 雙大括號存儲變量
{% for i in list %} {{  i }} {% endfor %}  #單大括號存放邏輯結構

.號相當於類,深度查找
i.name  查找屬性

變量過濾器:
語法格式:      {{obj|filter:param}}

# 1  add          :   給變量加上相應的值
   #   # 2  addslashes   :    給變量中的引號前加上斜線
   #   # 3  capfirst     :    首字母大寫
   #   # 4  cut          :   從字符串中移除指定的字符
   #   # 5  date         :   格式化日期字符串
   #   # 6  default      :   如果值是False,就替換成設置的默認值,否則就是用本來的值
   #   # 7  default_if_none:  如果值是None,就替換成設置的默認值,否則就使用本來的值
   
 #實例:#value1="aBcDe"
 {{ value1|upper }}<br>
 #value2=5
 {{ value2|add:3 }}<br>
 #value3=‘he  llo wo r ld‘
 {{ value3|cut:‘ ‘ }}<br>
 #import datetime
 #value4=datetime.datetime.now(){{ value4|date:‘Y-m-d‘ }}<br>
 #value5=[]
 {{ value5|default:‘空的‘ }}<br>
 #value6=‘<a href="#">跳轉</a>‘
 {{ value6 }}

{% autoescape off %}
  {{ value6 }}
{% endautoescape %}

{{ value6|safe }}<br>
{{ value6|striptags }}
#value7=‘1234‘
{{ value7|filesizeformat }}<br>
{{ value7|first }}<br>
{{ value7|length }}<br>
{{ value7|slice:":-1" }}<br>
#value8=‘
 {{ value8|urlencode }}<br>
    value9=‘hello I am yuan‘


本文出自 “linux技術” 博客,請務必保留此出處http://haoyonghui.blog.51cto.com/4278020/1956066

django 學習一