python django基礎(二),pythondjango基礎

來源:互聯網
上載者:User

python django基礎(二),pythondjango基礎
django MTV模式之----template模版

django是動態網頁,背景資料需要動態插入到前端中,這時就依賴於django的template模版架構。django支援多種模版架構,下面介紹django內建的。

內建的模版語言可以在django模版中插入一些簡單的代碼和邏輯,例如變數,邏輯判斷等。下面是一些模版的基礎用法:(在html代碼中插入該模版標籤)

變數:

{{result}}

if判斷

{%if%}{%endif%}

迴圈for

{%for%}{%endfor%}

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

{{ 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/

後台view會將資料傳遞給前台模版,交給前台模版去渲染。

django MTV模式之----view

views.py是django中python幕後處理的主要邏輯代碼的地方,一般來說每訪問一個網頁,會對url進行匹配,這時會調用相應的views(實際就是一個python的自訂函數),之後view裡面的函數對資料經過處理之後返回給前端。

一個view簡單例子:

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格式還是比較優雅和簡單的,並且支援Regex。

url配置寫法例子如下:

from django.conf.urls import patterns, include, urlfrom django.contrib import adminadmin.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 adminfrom polls.models import BlogListclass BlogList_Admin(admin.ModelAdmin):  list_display = ('id', 'blogtitle', 'time','number', 'content','blank',)  list_filter = ('id', 'blogtitle','time',)  search_fields = ('number','time',)  list_per_page=20admin.site.register(BlogList, BlogList_Admin)

在urls.py開啟admin

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

為後台建立超級管理員

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

訪問admin後台

python manage.py runserverhttp://127.0.0.1:8000/admin/

xadmin

如果覺得django內建的admin介面比較簡陋,還可以使用xadmin,功能比較多。
http://xadmin.readthedocs.io/en/docs-chinese/

 

django更多資訊參考:

https://www.djangoproject.com/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.