Template
在view里面,我们获取了相关的数据,但我们的目的是将数据呈现出来。
于是:
1.首先我们想到的是直接把数据硬编码到html代码里面,然后通过HttpResponse
对象传递给浏览器进行渲染:
from django.http import HttpResponse
import datetime
def current_datetime(request):
now = datetime.datetime.now()
html = "<html><body>It is now %s.</body></html>" % now
return HttpResponse(html)
view传递context的方式
通过view的render()方法填充template可以有以下方式:
1.适合于数据量小且静态的数据。在template中直接使用相关键值为标签:
def test1(request):
return render(request,'test/raw.htm',{
'name':'Enm',
'age':22,
'company': 'Outdoor Equipment',
'ship_date': datetime.datetime.now(),
'ordered_warranty': False})
install jekyll 流程
首先下载
ruby
安装ruby download ,然后下载DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe。安装完ruby
后,再安装rubyGems
:运行gem update --system
即可。解压DevKit,然后命令行cd到该目录,运行
Python list的一些技巧
列表相邻元素压缩器
>>> a = [1, 2, 3, 4, 5, 6]
>>> zip(*([iter(a)] * 2))
[(1, 2), (3, 4), (5, 6)]
>>> group_adjacent = lambda a, k: zip(*([iter(a)] * k))
>>> group_adjacent(a, 3)
[(1, 2, 3), (4, 5, 6)]
>>> group_adjacent(a, 2)
[(1, 2), (3, 4), (5, 6)]
>>> group_adjacent(a, 1)
[(1,), (2,), (3,), (4,), (5,), (6,)]
>>> zip(a[::2], a[1::2])
[(1, 2), (3, 4), (5, 6)]
>>> zip(a[::3], a[1::3], a[2::3])
[(1, 2, 3), (4, 5, 6)]
>>> group_adjacent = lambda a, k: zip(*(a[i::k] for i in range(k)))
>>> group_adjacent(a, 3)
[(1, 2, 3), (4, 5, 6)]
>>> group_adjacent(a, 2)
[(1, 2), (3, 4), (5, 6)]
>>> group_adjacent(a, 1)
[(1,), (2,), (3,), (4,), (5,), (6,)]
jekyll加载图片的路径问题
一开始使用根目录/assets/…/img/bg.png
的方式,在localhost调试成功,但在github pages失败。
后来试了一下当前目录方式./img/bg.png
成功。也可以用img/bg.png
表示当前目录。
完成基于jekyll的第一个blog
今天差不多把blog完成了,这是我第一个基于jekyll的blog,定制了主题,修改了相关配置,以及解决了中文bug。现在把这5天的心得分享一下:
- 首先是中文问题,这个困扰我了很久,也花费了不少时间,不过最后总算找到解决办法。给我最大的感触就是,即使碰壁,也得硬着头皮找下去,如果放弃,那就前功尽弃了。
解决invalid byte sequence in GBK
jekyll对中文的支持不太好,导致经常出现乱码甚至无法运行jekyll server
命令。解决post内容乱码问题可以通过修改convertible.rb文件的第27行:
self.content = File.read(File.join(base, name));
为
self.content = File.read(File.join(base, name), :encoding => "utf-8");
原因File.read()可能采用系统默认编码读取文件,中文系统为GBK,但markdown文件均为utf-8编码,所以导致无法正确展现中文。
谁将取代智能手机
智能手表
现在手表被炒的很热,但以目前来看,手表只是一个辅佐设备;注定手表不可能超越智能手机。手表的特点在于屏幕小,便携,查看信息快速直接;但屏幕小也是它的极限性(屏幕扩大了跟智能手机就没差别了),决定了它不适合发展成独立的终端,你能想象拿着手表刷微博看知乎发邮件吗?
js 算出某值以内的质数
//算出 num 以内的所有质数 function prime(num){ var list = []; for(var i = 2; i <= num; i++){ list.push(i); } //create a Array for(var i = 0; i < list.length; i++){ for(var j = 2; j < list[i]; j++){ if(list[i] % j == 0){ list.splice(i,1); //delete the non prime number.it will change the index of other elements j = 2; //由于splice导致list[i+1]的index变为i,因此把j置为2以便对list[i+1]进行重新计算 } } }