日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

djngo快速实现--使用Bootstrap

發(fā)布時間:2025/6/15 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 djngo快速实现--使用Bootstrap 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

繼續(xù)django學習之旅,之前我們所做的Django練習前端都非常丑。這節(jié)我們使用Bootstrap,頓時使丑陋的頁面變成白天鵝。

?

?

安裝Bootstrap??????????????????????????????????????

?

Bootstrap是什么?

BootstrapTwitter推出的一個用于前端開發(fā)的開源工具包。它由Twitter的設計師Mark?OttoJacob?Thornton合作開發(fā),是一個CSS/HTML框架。Bootstrap提供了優(yōu)雅的HTMLCSS規(guī)范,它即是由動態(tài)CSS語言Less寫成。

?

django-bootstrap-toolkit

django-bootstrap-toolkit應用可以讓Django非容易的集成Bootstrap

?

?

安裝django-bootstrap-toolkit

?

>pip install django-bootstrap-toolkit

?

?

?

?

運行bootstrap例子???????????????????????????????????

?

?

克隆django-bootstrap-toolkit?項目

https://github.com/dyve/django-bootstrap-toolkit

?

$ git clone git://github.com/dyve/django-bootstrap-toolkit.git

??

克隆下來的django-bootstrap-toolkit?項目自帶demo_project,現(xiàn)在我們可以直接運行這個demo了。

進入demo_project?目錄運行:

> python manage.py runserver

?

通過瀏覽器訪問:http://127.0.0.1:8000/

wa?o?!!?cool?比我們之前的djngo例子好看多了。

?

?

?

?

預覽demo_project???????????????????????????????????????????????????????????????????????

?

來看一下這個項目的結(jié)構(gòu)吧!

通過前面多個django項目練習,我們已經(jīng)對這個目錄結(jié)構(gòu)不陌生了。下面看看這個例子要特別注意的:

?

settings.py

?

…… INSTALLED_APPS = ('django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.sites','django.contrib.messages','django.contrib.staticfiles',# Uncomment the next line to enable the admin:# 'django.contrib.admin',# Uncomment the next line to enable admin documentation:# 'django.contrib.admindocs', 'bootstrap_toolkit','demo_app', ) ……

?

要想使用bootstrap,這里必須加載bootstrap_toolkit?demo_app則是我們當前的項目。

?

urls.py

from django.conf.urls import patterns, url# Uncomment the next two lines to enable the admin: # from django.contrib import admin # admin.autodiscover() from django.views.generic import TemplateViewurlpatterns = patterns('',# Examples:# url(r'^$', 'demo_project.views.home', name='home'),# url(r'^demo_project/', include('demo_project.foo.urls')),# Uncomment the admin/doc line below to enable admin documentation:# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),# Uncomment the next line to enable the admin:# url(r'^admin/', include(admin.site.urls)), url(r'^$', TemplateView.as_view(template_name='index.html'), name="home"),url(r'^contact$', TemplateView.as_view(template_name='contact.html'), name="contact"),url(r'^form$', 'demo_app.views.demo_form'),url(r'^form_template$', 'demo_app.views.demo_form_with_template'),url(r'^form_inline$', 'demo_app.views.demo_form_inline'),url(r'^formset$', 'demo_app.views.demo_formset', {}, "formset"),url(r'^tabs$', 'demo_app.views.demo_tabs', {}, "tabs"),url(r'^pagination$', 'demo_app.views.demo_pagination', {}, "pagination"),url(r'^widgets$', 'demo_app.views.demo_widgets', {}, "widgets"),url(r'^buttons$', TemplateView.as_view(template_name='buttons.html'), name="buttons"), )

?

?

下面再看看views.py寫了哪些中間邏輯:

from django.contrib import messages from django.forms.formsets import formset_factory from django.shortcuts import render_to_response from django.template.context import RequestContext from django.core.paginator import Paginator, PageNotAnInteger, EmptyPagefrom bootstrap_toolkit.widgets import BootstrapUneditableInputfrom .forms import TestForm, TestModelForm, TestInlineForm, WidgetsForm, FormSetInlineFormdef demo_form_with_template(request):layout = request.GET.get('layout')if not layout:layout = 'vertical'if request.method == 'POST':form = TestForm(request.POST)form.is_valid()else:form = TestForm()modelform = TestModelForm()return render_to_response('form_using_template.html', RequestContext(request, {'form': form,'layout': layout,}))def demo_form(request):messages.success(request, 'I am a success message.')layout = request.GET.get('layout')if not layout:layout = 'vertical'if request.method == 'POST':form = TestForm(request.POST)form.is_valid()else:form = TestForm()form.fields['title'].widget = BootstrapUneditableInput()return render_to_response('form.html', RequestContext(request, {'form': form,'layout': layout,}))def demo_form_inline(request):layout = request.GET.get('layout', '')if layout != 'search':layout = 'inline'form = TestInlineForm()return render_to_response('form_inline.html', RequestContext(request, {'form': form,'layout': layout,}))def demo_formset(request):layout = request.GET.get('layout')if not layout:layout = 'inline'DemoFormSet = formset_factory(FormSetInlineForm)if request.method == 'POST':formset = DemoFormSet(request.POST, request.FILES)formset.is_valid()else:formset = DemoFormSet()return render_to_response('formset.html', RequestContext(request, {'formset': formset,'layout': layout,}))def demo_tabs(request):layout = request.GET.get('layout')if not layout:layout = 'tabs'tabs = [{'link': "#",'title': 'Tab 1',},{'link': "#",'title': 'Tab 2',}]return render_to_response('tabs.html', RequestContext(request, {'tabs': tabs,'layout': layout,}))def demo_pagination(request):lines = []for i in range(10000):lines.append(u'Line %s' % (i + 1))paginator = Paginator(lines, 10)page = request.GET.get('page')try:show_lines = paginator.page(page)except PageNotAnInteger:# If page is not an integer, deliver first page.show_lines = paginator.page(1)except EmptyPage:# If page is out of range (e.g. 9999), deliver last page of results.show_lines = paginator.page(paginator.num_pages)return render_to_response('pagination.html', RequestContext(request, {'lines': show_lines,}))def demo_widgets(request):layout = request.GET.get('layout', 'vertical')form = WidgetsForm()return render_to_response('form.html', RequestContext(request, {'form': form,'layout': layout,}))

?

剩下的就是模板目錄templates?了,里面的html模板頁面較多,我就不一一列出了。不過,現(xiàn)在最興奮的就是去修改上面的文字,讓其看起來更像我們自己的“網(wǎng)站”。

  在后面的學習中,我們將以此為基礎進行。

總結(jié)

以上是生活随笔為你收集整理的djngo快速实现--使用Bootstrap的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 极品人妻videosss人妻 | 99福利在线 | 产乳奶汁h文1v1| 欧美 日韩 国产精品 | 日本黄色激情视频 | 红桃视频成人在线 | 久久精品在线视频 | 美女免费看片 | 大尺度舌吻呻吟声 | 神马三级我不卡 | 国内毛片毛片毛片 | 中文字幕一区二区三区久久久 | 91九色在线观看 | 男人天堂亚洲 | 日韩久久久久久久久久久 | 91黄色片 | 日韩视频h| 青青青青青青青青草 | 蜜乳av一区二区 | 欧美成人三级在线视频 | 免费毛片软件 | 天天精品 | 高清乱码毛片入口 | 国产真实乱在线更新 | 精品在线视频一区二区三区 | 伊人99| 北条麻妃av在线播放 | 亚洲第三十七页 | 亚洲最大网| 性生交大片免费看女人按摩 | 一区二区免费视频 | 国产吃瓜黑料一区二区 | av片一区二区 | av777777| 调教驯服丰满美艳麻麻在线视频 | 草久久久久久 | 国产亚洲成av人在线观看导航 | 亚洲免费视频播放 | 国产精品88久久久久久妇女 | 女人张开腿让男人桶爽 | 日本免费专区 | 国产欧美精品一区二区 | 一级片免费观看 | 亚洲国产精品天堂 | 女人性做爰100部免费 | 少妇免费视频 | 欧美一区二区三区成人久久片 | 欧美激情自拍 | 国产真实老熟女无套内射 | 欧美高清视频 | 国产精品第1页 | 欧美123 | 亚洲一区二区三区高清 | 91精品婷婷国产综合久久竹菊 | 岛国黄色片 | 美日韩一二三区 | 精品国产欧美日韩 | 日本打屁股网站 | 男人天堂av电影 | 特极毛片 | 成人午夜又粗又硬又大 | 99久久久无码国产精品不卡 | a级黄色小视频 | 成人av网址在线观看 | 久久精品国产成人av | 91久久精品国产91性色69 | 国产精品国产三级国产播12软件 | 少妇搡bbbb搡bbb搡打电话 | 欧美岛国国产 | 国产91精品久久久久久久网曝门 | 午夜视频在线观看一区 | 亚洲综合成人网 | 亚洲精品乱码久久久久久蜜桃欧美 | 一区二区三区精 | 男女视频网站 | 欧美日韩国产一区二区三区在线观看 | 亚洲激情网站 | 三级精品在线观看 | 无码人妻av免费一区二区三区 | 成年人免费小视频 | 中文字幕第一页久久 | 亚洲精品一二 | 成人片在线视频 | 红桃视频国产 | 日韩欧av | 国产男男网站 | 伊人久久大香线蕉综合75 | 精品无码黑人又粗又大又长 | 大陆女明星乱淫合集 | zoo性欧美| 成年人黄色录像 | 四川丰满妇女毛片四川话 | 日本在线观看免费 | 少妇诱惑av | 日韩欧美一区二区三区四区五区 | 亚洲色图2| 亚洲射射射 | 精品久久久久久久 | 日韩精品视频三区 |