python django基礎(二)

django MTV模式之----template模版

django是動態的網頁,後臺的數據須要動態的插入到前端中,這時就依賴於django的template模版框架。django支持多種模版框架,下面介紹django自帶的。html

自帶的模版語言能夠在django模版中插入一些簡單的代碼和邏輯,例如變量,邏輯判斷等。下面是一些模版的基礎用法:(在html代碼中插入該模版標籤)前端

變量:python

{{result}}

if判斷正則表達式

{%if%}
{%endif%}

循環for數據庫

{%for%}
{%endfor%}

過濾器(用於變量轉化)
例子:使變量輸出爲時間格式django

{{ item.publishtime|date:'Y-m-d H:i:s' }}

django有大量的過濾器來處理前端的展現,具體可參考:
http://djangobook.py3k.cn/appendixF/
https://docs.djangoproject.com/en/1.10/howto/custom-template-tags/app

後臺view會將數據傳遞給前臺模版,交給前臺模版去渲染。框架

django MTV模式之----view

views.py是django中python後臺處理的主要邏輯代碼的地方,通常來講每訪問一個網頁,會對url進行匹配,這時會調用相應的views(實際就是一個python的自定義函數),以後view裏面的函數對數據通過處理以後返回給前端。函數

一個view簡單例子:url

def blogmanager(request):
  results = BlogList.objects.all().order_by('-time')
  context = {'results': results}
  return render(request, 
                'bloglist/blogmanager.html', context)

在view中用get方法獲取前端提交的表單信息:

  dayfrom = request.GET.get("dayfrom", "")
  dayto = request.GET.get("dayto", "")
  filterresult = request.GET.get("result", "")

在views中直接返回文本

return HttpResponse("disabled account")

在view中進行頁面跳轉

HttpResponseRedirect('/file/test/')

在view裏返回數據給前臺渲染,傳遞的context變量能夠是字典的數據類型

return render(request, 'blog/publishlist.html', context)

django----url匹配

urls.py是配置訪問相應url對應哪一個views去處理的地方。django的url格式仍是比較優雅和簡單的,而且支持正則表達式。

url配置寫法例子以下:

from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
   url(r'^$', 'blog.views.home', name='home'),
   url(r'^record/(\d+)/', 'blog.views.record', name='record'),
   url(r'^stats/(\S+)/', 'blog.views.stats', name='stats'),
)

url標籤,定義name,在views裏面加一個name="",name能夠寫在模版裏,這樣不用寫死url地址。

url(r'^blogmanager/index$', 'sjzs.views.blogmanager', name='blogmanager'),

<a class="brand" href="{%url 'blogmanager'%}">博客信息一覽</a>

可是這個名稱是全局惟一的,不能重複。

url.py嵌套,在django工程目錄下有個url.py,另外在各自的應用目錄下也能夠建立一個url.py,而後在工程目錄的url.py中加上一句include,這樣某個應用url的匹配就能夠具體寫在應用目錄下的url.py,以下:

url(r'^subblog/', include('subblog.urls'))

url 參數,django支持從url中獲取參數

url(r'^record/(\d+)/', 'blog.views.record', name='record'),

django----admin後臺管理

admin是django自帶的後臺管理,很方便使用,這個自動生成的後臺頁面裏面有不少內容,包括用戶和權限管理,也包括了應用的數據庫內容,超級管理員能夠編輯內容,增刪改查,而且能夠方便查找和過濾數據。

開啓admin:在settings.py文件的install_apps裏去掉admin的註釋,以下:

INSTALLED_APPS = (
'django.contrib.admin',
)

更新數據庫

python manage.py syncdb

在admin.py文件加入下面代碼:

from django.contrib import admin
from polls.models import BlogList
class BlogList_Admin(admin.ModelAdmin):
  list_display = ('id', 'blogtitle', 'time','number', 'content','blank',)
  list_filter = ('id', 'blogtitle','time',)
  search_fields = ('number','time',)
  list_per_page=20
admin.site.register(BlogList, BlogList_Admin)

在urls.py開啓admin

from django.contrib import admin
admin.autodiscover()
url(r'^admin/', include(admin.site.urls)),

爲後臺建立超級管理員

manage.py createsuperuser --username=test --email=test@gmail.com

訪問admin後臺

python manage.py runserver
http://127.0.0.1:8000/admin/

xadmin

若是以爲django自帶的admin界面比較簡陋,還可使用xadmin,功能比較多。
http://xadmin.readthedocs.io/en/docs-chinese/

 

django更多信息參考:

https://www.djangoproject.com/

相關文章
相關標籤/搜索