在 django的 DetailView页面想要做到下一篇文章的链接,我的思路是获取当前 object的先一个object或后一个object。查了一下 django documentation,找到如下信息。
For every DateField and DateTimeField that does not have null=True, the object will have get_next_by_FOO() and get_previous_by_FOO() methods, where FOO is the name of the field. This returns the next and previous object with respect to the date field, raising a DoesNotExist exception when appropriate.
也就是说,当某 field为 DateField或 DateTimeField时,就可以查询其相邻的 object,假设这个 field的命名为foo, 那么查询下一个 obje
...在本地建了一个博客,用的是 sqlite3,而 sina app engine 只支持mysql数据库,要想在sae上面部署这个博客就要想办法将sqlite3的数据库转到mysql上来。
一般的思路就是先将 sqlite3的本地文件app_sql.db 导出成sql语句,再导入进 mysql中。
先导出到app.sql中:
sqlite3 app_sql.db .dump > app.sql
再导入mysql的blog数据库中:
mysql -uroot -p blog < app.sql
结果却提示语法错误,看来不能直接将sqlite3的sql文件直接导入到mysql的数据库中,必须先转化。幸好网上有高人已经有解决方案,要用过工具sqlite3-to-mysql.py。
于是,
先删掉blog数据库再重新建立blog数据库
$ mysql -uroot -p
mysql> drop database blog;
mysql> create database blog;
mysql> exit
然后用 sqlite3-to-mysql.py 处理ap
...原先在sina app engine部署django=1.8,真不是一件容易的事,主要是因为sae不直接支持最新版的django。要想使用django 1.8,只有使用 site-packages。而sae通常使用 svn 部署代码,而如果加上一个25M的 site-packages ,其代码部署速度可想而知。幸好部署代码的方式不只一种,sae 还为我们提供网页上传代码压缩包的方式。
上传代码压缩包的网页是 sae 应用的控制面板
1.先压缩
cd feat/2
tar -czf 2.tar.gz *
2.再上传
通过操作按钮上传对应版本的代码压缩包。需要注意的是压缩包中的内容须为本地版本号文件夹中的所有内容,不要将版本号根文件夹也上传了,否则上传后服务器中的代码将会多出一个版本号文件夹,文件结构就不对了。尽管上传完成后,sae 总是会提示上传失败,但是不用丧气,其实sae上面已经上传成功了,只需要稍等片刻上传的代码就会生效。
当然,sae 提供了工具 saecloud 部署代码(saecloud deploy)和安装第三方库(saecloud install package),但是
...svn有时只想检出指定目录,对于其他的大文件目录则不想检出,如不想检出python代码中的site-packages。可以用以下的方法。
1.检出feat/2中的所有文件(但不包括文件夹)到本地feat/2中,并在feat/2中建立.svn目录等相关配置。
svn checkout --depth files http://svn.sinaapp.com/feat/2 feat/2
2.检出需要的文件夹及其迭代的所有子文件夹及文件,如feat/2下的feat和blog,及其子文件夹和文件等。
svn update --depth infinity feat
svn update --depth infinity blog
3.检出不想包括文件的空目录,如site-packages
svn update --depth empty site-packages
...linux 经常会更改非上下级目录,有时又想返回,以前只知道先打印pwd,更改目录后返回则复制上次的目录再cd,这样用着多了也觉着不方便,应该有更方便的更换目录方式。于是查了一下命令的manual。
$ man cd
找到这么一句话:
An argument of - is equivalent to $OLDPWD.
于是尝试cd -
$ cd /opt/eclipse
$ cd -
果然返回了旧目录。 其实类似的使用场景还有,在当前目录登录到super user
$ su -
其它例如
~
表示当前用户目录也是经常用到,在此顺便一提。
...