go实战(5):引入bootstrap,设置静态资源

oMingZi12345678 · · 4528 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

an

之前生成了Product类的scaffold,但是如同rails的开发者David所讲的那样,scaffold几乎没什么用。所以按照《Agile Web Development with Rails 4th》中的迭代计划,下一步的修改是美化list页面:

但是这个界面还是太丑陋了。其实,有了bootstrap后,很多站点都变成了“又黑又硬”的工具条+“小清新”风格。我们即不能免俗,又懒得自已设计风格,不妨用bootstrap将产品清单界面重新设计成如下的风格:

下面让我们来实现这个界面。显然web界面会使用一些静态资源(css,js,image等),

要在Django中引入静态资源)。Django在正式部署的时候对于静态资源有特殊的处理,在开发阶段,可以有简单的方式让静态资源起作用。

首选在project目录下面创建一个static目录,并将静态资源按合理的组织方式放入其中:

static/

      css/

           bootstrap.min.css

      js/

      images/

      productlist.html

其中productlist.html是请界面设计师实现的产品清单静态页面;css/bootstrap.min.css 是该页面使用的样式表,来自bootstrap,将来整个系统都将使用这一套样式风格;js目录现在为空,以后可以将javascript代码放在这里;images文件夹同理。

 

我们可以看到,Django对于静态内容的管理非常符合管理。相比之下,rails要求你将静态内容放到很怪异的结构中:

app/assets/

     images/

     javascripts/

     stylesheets/

界面设计师实现的界面要想运行起来,还需要修改相关的路径,或者改变自己的目录设置习惯。这种设计让人难以理解。

 

回到Django,让静态资源起作用只需要简单的配置(下面的做法只适用于开发阶段):

修改settings.py的static files小节:

 

复制代码
import os
... ...

# Additional locations of static files
HERE = os.path.dirname(__file__)
STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    HERE+STATIC_URL,
)
复制代码

 

然后在urls.py中增加static的url映射:

 

from django.contrib.staticfiles.urls import staticfiles_urlpatterns
... ...
# for development only
# This will only work if DEBUG is True.
urlpatterns += staticfiles_urlpatterns()

 

启动server,就可以通过http://127.0.0.1:8000/static/productlist.html看到设计好的界面了。

源代码:http://download.csdn.net/detail/thinkinside/4036963

在下一节,终于可以修改模板,美化产品清单页的样式了。


有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:oMingZi12345678

查看原文:go实战(5):引入bootstrap,设置静态资源

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

4528 次点击  
加入收藏 微博
下一篇:go相关书评
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传