''' urlpatterns = [ url(正則表達式, views視圖函數,參數,別名), ] 參數說明: 一個正則表達式字符串 一個可調用對象,一般爲一個視圖函數或一個指定視圖函數路徑的字符串 可選的要傳遞給視圖函數的默認參數(字典形式) 一個可選的name參數 '''
正則表達式:html
url(r'^bbs/article/(\d+)/$',views.article_year), url(r'^bbs/article/(\d+)/(\d+)$',views.article_yearMonth), def article_year(request,year): pass def article_yearMonth(request,year,month): pass
在Python 正則表達式中,命名正則表達式組的語法是(?P<name>pattern),其中name 是組的名稱,pattern 是要匹配的模式。前端
url(r'^bbs/article/(?P<year_id>\d+)/(?P<month_id>\d+)$',views.article_yearMonth), def article_yearMonth(request,month_id,year_id): pass
#Including another URLconf # 1. Import the include() function: from django.conf.urls import url, include # 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) from django.conf.urls import include, url urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^blog/', include('blog.urls')), ]
利用別名,進行地址反向解析正則表達式
是在render方法中,進行反向解析的sql
Httpresponse() 返回字符串 render(request,template_name,context) 結合一個給定的摸版和一個給定的上下文字典,並返回一個渲染後的HttpResponse對象 參數說明: 1.request:用於生產響應的請求對象 2.template_name:要使用的模板的完整名稱,可選參數 3.context:添加到模板上下文的一個字典,默認是一個空字典。例如字典中的某個值是可調用的,視圖將在渲染模板以前調用 4.content_type:生成的文檔要使用的MIME類型。默認爲DEFAULT_CONTENT_TYPE設置的值 5.status:響應的狀態碼。默認爲200 redirect(跳轉,重定向) redirct("/路徑/") 模擬用戶點擊submit請求: 請求url:http://127.0.0.1:8000/login/ 1.請求url:/login/ POST 2.url(r'^login/',app01_views.login,name="login") 3.login(request):驗證, if 成功,redirect("/index/") 重定向請求 請求路徑:http://127.0.0.1:8000/index/ 1.請求url:/index/ GET 2.url(r'^index/',app01_views.index,name="index") 3.index(request):取出數據庫數據,渲染到index.html頁面 用戶看到的是:渲染的index.html頁面 redirect與render的區別: redirct發出兩次請求 render發出一次請求
模板語言:將具體數據嵌入到前端模板的語言數據庫
語法:django
{{ value }}安全
<h4>{{s}}</h4> <h4>列表:{{ l.0 }}</h4> <h4>列表:{{ l.2 }}</h4> <h4>字典:{{ dic.name }}</h4> <h4>日期:{{ date.year }}</h4> <h4>類對象列表:{{ person_list.0.name }}</h4>
注意:句點符也能夠用來引用對象的方法(無參數方法)。app
語法:函數
{{obj|filter__name:param}}oop
1.default
一個變量是false或者爲空,使用給定的默認值。不然,使用變量的值。例如:
{{ value|default:"nothing" }}
2.length
返回值的長度。它對字符串和列表都起做用。例如:
{{ value|length }}
若是 value 是 ['a', 'b', 'c', 'd'],那麼輸出是 4。
3.filesizeformat
將值格式化爲一個 「人類可讀的」 文件尺寸 (例如 '13 KB', '4.1 MB', '102 bytes', 等等)。例如:
{{ value|filesizeformat }}
若是 value 是 123456789,輸出將會是 117.7 MB。
4.date
若是 value=datetime.datetime.now()
{{ value|date:"Y-m-d" }}
5.slice
若是 value="hello world"
{{ value|slice:"2:-1" }}
6.truncatechars
若是字符串字符多於指定的字符數量,那麼會被截斷。截斷的字符串將以可翻譯的省略號序列(「...」)結尾。
參數:要截斷的字符數
例如:
{{ value|truncatechars:9 }}
7.safe
Django的模板中會對HTML標籤和JS等語法標籤進行自動轉義,緣由顯而易見,這樣是爲了安全。例如:
value="<a href="">點擊</a>"
{{ value|safe}}
ORM是數據庫表與類的映射關係
映射關係:
表名 <-------> 類名
字段 <-------> 屬性
表記錄 <-------> 類實例對象
經過logging能夠查看翻譯成的sql語句
LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console':{ 'level':'DEBUG', 'class':'logging.StreamHandler', }, }, 'loggers': { 'django.db.backends': { 'handlers': ['console'], 'propagate': True, 'level':'DEBUG', }, } }
查詢全部
bookList = models.Book.objects.all()
進行模糊查詢
bookList = models.Book.objects.filter(title__contains=keyword)
方式一:
models.Book.objects.create(title=title,pubDate=pubdate)
方式二:
book_obj = Book(title="西遊記", pubdate=pubdate) book_obj.save()
models.Book.objects.filter(id=id).delete()
models.Book.objects.filter(id=id).update(title=title,pubdate=pubdate)
{% for book_obj in bookList %} <tr> <td>{{ forloop.counter }}</td> <td>{{ book_obj.title }}</td> <td>{{ book_obj.pubDate|date:"Y-m-d" }}</td> <td>{{ book_obj.price }}</td> <td>{{ book_obj.publish }}</td> <td> <a href="/edit/{{ book_obj.id }}"><button class="btn btn-info">編輯</button></a> <a href="/del/{{ book_obj.id }}"><button class="btn btn-danger">刪除</button></a> </td> </tr> {% endfor %}