django前端模板(django前端模板用途)
本篇文章給大家談?wù)刣jango前端模板,以及django前端模板用途對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。
本文目錄一覽:
- 1、django選擇什么框架做前端UI比較好
- 2、求助django 實(shí)現(xiàn)前端頁面檢索功能的代碼
- 3、[Django] 如何在Django中使用前端工具鏈
- 4、js中如何對(duì)django模板中的變量進(jìn)行賦值
- 5、Django - 如何集成Metronic模板
- 6、django框架中html頁面怎么排版?
django選擇什么框架做前端UI比較好
1、flex
Apache基金會(huì)今天發(fā)布了Flex 4.8版本,這是Adobe將Flex捐獻(xiàn)給Apache基金會(huì)后發(fā)布的第一個(gè)版本。
需要注意的是,F(xiàn)lex目前還在孵化階段,還不是Apache的正式項(xiàng)目,F(xiàn)lex 4.8也不是一個(gè)正式的Apache版本。
Apache稱,該版本標(biāo)志著Flex新時(shí)代的開始,F(xiàn)lex的未來將由社區(qū)來驅(qū)動(dòng),而不是由一個(gè)公司驅(qū)動(dòng)。開發(fā)者可以通過貢獻(xiàn)代碼,來幫助改進(jìn)Flex,如修復(fù)bug、增加功能等。
從Macromedia賣給Adobe,然后又捐給apache,不知道搞什么名堂。不過還好沒有經(jīng)過大幅重構(gòu),否則就真的是悲哀了!
2、extjs
ExtJS是一種主要用于創(chuàng)建前端用戶界面,是一個(gè)基本與后臺(tái)技術(shù)無關(guān)的前端ajax框架。
功能豐富,無人能出其右。
無論是界面之美,還是功能之強(qiáng),ext的表格控件都高居榜首。
華麗的界面,靈活的功能,還有開發(fā)工具都是配套的,但有個(gè)最大的問題,用就得花錢!
3、easyui
easyui幫助你構(gòu)建你的web應(yīng)用更加容易。
它是一個(gè)基于jquery的插件,開發(fā)出來的一套輕量級(jí)的ui框架,非常小巧而且功能豐富。
官方網(wǎng)站是:
但是她有一個(gè)最大的問題就是代碼只能找到以前的開源的版本,到了1.2以后的版本源代碼都是經(jīng)過混淆的,如果遇到問題修改起來會(huì)非常麻煩!不過一個(gè)比較大的優(yōu)勢是開源免費(fèi),并且界面做的還說的過去!
4、MiniUI
又一個(gè)基于jquery的框架,開發(fā)的界面功能都很豐富。
jQuery MiniUI - 快速開發(fā)WebUI。
它能縮短開發(fā)時(shí)間,減少代碼量,使開發(fā)者更專注于業(yè)務(wù)和服務(wù)端,輕松實(shí)現(xiàn)界面開發(fā),帶來絕佳的用戶體驗(yàn)。
使用MiniUI,開發(fā)者可以快速創(chuàng)建Ajax無刷新、B/S快速錄入數(shù)據(jù)、CRUD、Master-Detail、菜單工具欄、彈出面板、布局導(dǎo)航、數(shù)據(jù)驗(yàn)證、分頁表格、樹、樹形表格等典型WEB應(yīng)用系統(tǒng)界面。
界面做的挺不錯(cuò),功能也挺豐富,但是有兩個(gè)比較大的問題,一個(gè)是收費(fèi),一個(gè)是沒有源碼,說白了,不開源!基于這個(gè)開發(fā)如果想對(duì)功能做擴(kuò)展就需要找他們的團(tuán)隊(duì)進(jìn)行升級(jí)!
5、jQuery UI
jQuery UI 是一套 jQuery 的頁面 UI 插件,包含很多種常用的頁面空間,例如 Tabs(如本站首頁右上角部分) 、拉簾效果(本站首頁左上角)、對(duì)話框、拖放效果、日期選擇、顏色選擇、數(shù)據(jù)排序、窗體大小調(diào)整等等非常多的內(nèi)容。
功能非常全面,界面也挺漂亮的,可以整體使用,也可以分開使用其中的幾個(gè)模塊,免費(fèi)開源!
6、DWZ
DWZ富客戶端框架(jQuery RIA framework), 是中國人自己開發(fā)的基于jQuery實(shí)現(xiàn)的Ajax RIA開源框架.
設(shè)計(jì)目標(biāo)是簡單實(shí)用,快速開發(fā),降低ajax開發(fā)成本。
歡迎大家提出建議,我們將在下一版本中進(jìn)一步調(diào)整和完善功能.共同推進(jìn)國內(nèi)整體ajax開發(fā)水平。
畢竟是國產(chǎn)的,支持一下,而且源碼完全公開,可以選擇一下!不過性能怎么樣不敢確定!
7、GWT
Google 網(wǎng)頁工具包——GWT 提供了一組基于Java語言的開發(fā)包,這個(gè)開發(fā)包的設(shè)計(jì)參考Java AWT包設(shè)計(jì),類命名規(guī)則、接口設(shè)計(jì)、事件監(jiān)聽等都和AWT非常類似。熟悉Java AWT的開發(fā)者不需要花費(fèi)多大的力氣就能夠快速的理解GWT開發(fā)工具包,將更多地時(shí)間投入到GWT應(yīng)用的開發(fā)過程中。
你不用去了解這樣那樣的javascript框架,通過java你就可以寫出功能豐富的界面,可以做單元測試,畢竟是google的產(chǎn)品,嚴(yán)重支持一下!
8、YUI
Yahoo! UI Library (YUI) 是一個(gè)開放源代碼的 JavaScript 函數(shù)庫,為了能建立一個(gè)高互動(dòng)的網(wǎng)頁,它采用了AJAX, DHTML 和 DOM 等程式碼技術(shù)。它也包含了許多 CSS 資源。使用授權(quán)為 BSD許可證,基本上沒怎么研究過!
YUI Compressor倒是挺出名的,這套UI庫不知道應(yīng)用的情況怎么樣!
9、Sencha
Sencha 是由 ExtJS、jQTouch 以及 Raphael 三個(gè)項(xiàng)目合并而成的一個(gè)新項(xiàng)目。
大公司的框架,并且是幾樣庫的強(qiáng)強(qiáng)聯(lián)合,值得推薦!
10、Dojo
在國內(nèi)應(yīng)用好像不是很廣,不過性能上應(yīng)該沒問題。
Dojo是一個(gè)用javascript語言實(shí)現(xiàn)的開源DHTML工具包。
有多個(gè)基金會(huì)的支持,包括IBM和SUN,都是軟件界的泰斗,值得信賴!
11、ZK
ZK是一套以 AJAX/XUL/Java 為基礎(chǔ)的網(wǎng)頁應(yīng)用程式開發(fā)框架,用于豐富網(wǎng)頁應(yīng)用程式的使用接口。最大的好處是,在設(shè)計(jì)AJAX網(wǎng)絡(luò)應(yīng)用程式時(shí),輕松簡便的操作就像設(shè)計(jì)桌面程式一樣。 ZK包含了一個(gè)以AJAX為基礎(chǔ)、事件驅(qū)動(dòng)(event-driven)、高互動(dòng)性的引擎,同時(shí)還提供了多樣豐富、可重復(fù)使用的XUL與HTML組件,以 及以 XML 為基礎(chǔ)的使用接口設(shè)計(jì)語言 ZK User-interfaces Markup Language (ZUML)。
在線的demo
設(shè)計(jì)器的demo
日歷組件
功能豐富,全面,文檔齊全,而且升級(jí)了很多次,非常值得推薦!
12、OperaMasks-UI
OperaMasks-UI是OperaMasks團(tuán)隊(duì) 2011下半年打造的一款輕量級(jí)前端JS組件庫,旨在提供一款學(xué)習(xí)曲線低、定制性靈活、樣式統(tǒng)一,且多瀏覽器支持、覆蓋企業(yè)業(yè)務(wù)場景的前端 JavaScript UI組件庫。目前,該團(tuán)隊(duì)已將這一產(chǎn)品以LGPL 開源協(xié)議開放給社區(qū)。
文檔豐富,功能齊全,而且很容易使用和開發(fā)!而且是國產(chǎn)的喲!
13、JavaFX
Sun公司(已于2009年被Oracle公司收購)在2008年12月05日發(fā)布了JavaFX技術(shù)的正式版,它使您能利用 JavaFX 編程語言開發(fā)富互聯(lián)網(wǎng)應(yīng)用程序(RIA)。JavaFX Script 編程語言(以下稱為JavaFX)是Sun微系統(tǒng)公司開發(fā)的一種declarative, statically typed(聲明性的、靜態(tài)類型)腳本語言。JavaFX技術(shù)有著良好的前景,包括可以直接調(diào)用Java API的能力。因?yàn)?JavaFX Script是靜態(tài)類型,它同樣具有結(jié)構(gòu)化代碼、重用性和封裝性,如包、類、繼承和單獨(dú)編譯和發(fā)布單元,這些特性使得使用Java技術(shù)創(chuàng)建和管理大型程序 變?yōu)榭赡堋?/p>
求助django 實(shí)現(xiàn)前端頁面檢索功能的代碼
設(shè)我們的 django 博客應(yīng)用有如下的文章模型:
blog/models.pyclass Post(models.Model):
# 標(biāo)題
title = models.CharField(max_length=70)
# 正文
body = models.TextField()
# 其他屬性
def __str__(self):
return self.title
先看到第 1 步,用戶在搜索框輸入搜索關(guān)鍵詞,因此我們要在博客上為用戶提供一個(gè)搜索表單,html 表單代碼大概像這樣:
form method="get" action="/search/"
{% csrf_token %} input type="search" placeholder="搜索" required
button type="submit"搜索/button/form
特別注意在 form 標(biāo)簽下有一個(gè) {% csrf_token %},這是 django 用來防御跨站請(qǐng)求偽造(CSRF)攻擊的機(jī)制。如果不知道什么是 CSRF 的話也沒有關(guān)系,只要記住在使用 django 時(shí),前端的表單代碼里一定要加上 {% csrf_token %}。
用戶輸入了搜索關(guān)鍵詞并點(diǎn)擊了搜索按鈕后,數(shù)據(jù)就被發(fā)送給了 django 后臺(tái)服務(wù)器。表單的 action 屬性的值為 /search/,表明用戶提交的結(jié)果將被發(fā)送給 /search/ 這個(gè) URL。我們?yōu)檫@個(gè) URL 綁定一個(gè) django 視圖函數(shù),在這個(gè)視圖函數(shù)里完成前面第 2 步提到的過程。假設(shè)我們把視圖函數(shù)的代碼寫在 blog/views.py 里:
blog/views.pydef search(request):
q = request.GET.get('q')
error_msg = ''
if not q:
error_msg = '請(qǐng)輸入關(guān)鍵詞'
return render(request, 'blog/errors.html', {'error_msg': error_msg})
post_list = Post.objects.filter(title__icontains=q)
return render(request, 'blog/results.html', {'error_msg': error_msg,
'post_list': post_list})
首先我們使用 request.GET.get('q') 獲取到用戶提交的搜索關(guān)鍵詞。用戶通過表單提交的數(shù)據(jù) django 為我們保存在 request.GET 里,這是一個(gè)類似于 Python 字典的對(duì)象,所以我們使用 get 方法從字典里取出鍵 q 對(duì)應(yīng)的值,即用戶的搜索關(guān)鍵詞。這里字典的鍵之所以叫 q 是因?yàn)槲覀兊谋韱沃兴阉骺?input 的 name 屬性的值是 q,如果修改了 name 屬性的值,那么這個(gè)鍵的名稱也要相應(yīng)修改。
接下來我們做了一個(gè)小小的校驗(yàn),如果用戶沒有輸入搜索關(guān)鍵詞而提交了表單,我們就無需執(zhí)行查詢,而是渲染一個(gè)錯(cuò)誤頁面提示用戶請(qǐng)輸入關(guān)鍵詞。
如果用戶輸入了搜索關(guān)鍵詞,我們就通過 filter 方法從數(shù)據(jù)庫里過濾出符合條件的所有文章。這里的過濾條件是 title__icontains=q,即 title 中包含(contains)關(guān)鍵字 q,前綴 i 表示不區(qū)分大小寫。這里 icontains 是查詢表達(dá)式(Field lookups),其用法是在模型需要篩選的屬性后面跟上兩個(gè)下劃線。django 內(nèi)置了很多查詢表達(dá)式,建議過一遍 django 官方留個(gè)印象,了解每個(gè)表達(dá)式的作用,以后碰到相關(guān)的需求就可以快速定位到文檔查詢其用途:Field lookups
接下來就是渲染搜索結(jié)果頁面,顯示符合搜索條件的文章列表,下面是一個(gè)模板的簡單示例:
results.html
{% if error_msg %} p{{ error_msg }}/p{% endif %}
{% for post in post_list %} div
在這里顯示文章的相應(yīng)信息 /div{% empty %} div class="no-post"
沒有搜索到符合條件的文章 /div{% endfor %}
有了視圖函數(shù)后記得把視圖函數(shù)映射到相應(yīng)了 URL,前面我們表單數(shù)據(jù)提交的 URL 為 /search/,因此將視圖函數(shù) search 綁定到該 URL 上。
blog/urls.pyurlpatterns = [
# 其他 url 配置
url(r'^search/$', views.search, name='search'),]
大功告成!
[Django] 如何在Django中使用前端工具鏈
Django最大的不足在于其落后的前端工具鏈。現(xiàn)在前端開發(fā)幾乎必備的包管理器(例如npm,yarn)以及工程化必備的webpack工具鏈,Django卻不支持。Django開發(fā)的工作流中,后端的包管理可以用pip,而前端的包只能手動(dòng)管理。所以,我最近的工程項(xiàng)目中,已不再使用Django提供的前端模塊,僅僅把它當(dāng)作API服務(wù)器。這的確很遺憾,因?yàn)镈jango的template引擎也有一些易用的特性,如此拋棄,真的有點(diǎn)不舍。那么有沒有可能結(jié)合二者的優(yōu)點(diǎn)呢?
經(jīng)過一番探索,網(wǎng)上給出最靠譜的答案就是利用 django-webpack-loader 和 webpack-bundle-tracker 這兩個(gè)插件。其原理是 webpack-bundle-tracker 能夠輸出webpack的編譯過程以及結(jié)果。 django-webpack-loader 插件則是Django和webpack之間的橋梁,利用上面的編譯結(jié)果,自動(dòng)加載webpack打包后的靜態(tài)文件。
需要用webpack生成的靜態(tài)文件時(shí),就在template上面使用下面一段模板語言,能夠自動(dòng)完成靜態(tài)文件的注入。
簡單的試了試,應(yīng)該能夠達(dá)到我想要的效果,明天有時(shí)間再研究。
js中如何對(duì)django模板中的變量進(jìn)行賦值
django模版變量是屬于后臺(tái)服務(wù)器端的,而Js是前臺(tái)的,沒法給它們賦值。你應(yīng)該在服務(wù)器段就賦值,然后傳給前端頁面,render_to_response這個(gè)函數(shù)是可以添加模版變量的,到時(shí)候直接在頁面上使用就可以了,具體你可以查查render_to_response這個(gè)函數(shù)的用法
Django - 如何集成Metronic模板
在這個(gè)項(xiàng)目當(dāng)中, 使用Django作為后臺(tái)框架, 使用MeTronic作為前端模版。
怎么使得Django返回的view能夠正確的顯示出MeTronic模版的效果。
在問題解決之前,Django能找到模板文件之后,通過瀏覽器訪問相應(yīng)網(wǎng)頁,呈現(xiàn)的效果是這樣的
而正常的網(wǎng)頁效果是下圖所示:
辦法應(yīng)該同添加模板文件一樣有2個(gè),
修改為
作以上修改之后, Django就能正確顯示模板文件的效果呢
django框架中html頁面怎么排版?
在數(shù)據(jù)庫中存儲(chǔ)的文件為HTML的text格式,如下
只需要在前端模板文件里使用{% autoescape off %}就可以了
關(guān)于django前端模板和django前端模板用途的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
掃描二維碼推送至手機(jī)訪問。
版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。