Hot For Coding
web.py模板如何使用目录层级

web.py的模板使用非常容易,但有时候我们需要做目录层级以便管理。那么如何使用目录层级的模板呢?

通常我们使用模板的时候先声明模板文件夹

render = web.template.render('templates')

使用templates文件夹下index.html模板

return render.index()

使用templates文件夹下list.html模板

return render.list()

以上所有的html模板文件只放在tempates目录下,如果要在templates下建目录并使用目录下的模板文件只需加目录名称即可。

...

READ ALL

Linux awk命令

Linux有一个非常好用的命令awk,很多场景下都需要它,比如我要看看我的Nginx有没有运行,如果运行的话我就要杀掉它

获取NginxPID的命令如下:

[root@test01 ~]# ps -le | grep nginx
5 S     0 12601     1  0  80   0 - 31048 sigsus ?        00:00:00 nginx
5 S     0 30122 12601  0  80   0 - 31164 ep_pol ?        00:00:00 nginx
5 S     0 30123 12601  0  80   0 - 31164 ep_pol ?        00:00:00 nginx

...

READ ALL

利用Google API生成二维码

二维码的诞生就犹如短网址一样,应该是当前IT产物的代表了。当初微博推出短网址后,各大平台纷纷效仿,甚至API都提供了。现在二维码也在逐渐的成为一种规范,几乎百分之八十的应用都生成了自己的二维码。

谷歌提供了一个生成二维码的接口,通过接口我们可以生成二维码,方便又快捷。

接口地址

http://chart.apis.google.com/chart?chs=宽高值x宽高值&cht=qr&chld=等级|边距&chl=内容

参数说明

  • 宽高值:生成二维码尺寸,单位是像素,目前生成的二维码都是正方形的,所以两个宽高值都设置为一样的值
  • 等级:四个等级,L-默认:可以识别已损失的7%的数据;M-可以识别已损失15%的数据;Q-可以识别已损失25%的数据;H-可以识别已损失30%的数据
  • 边距:生成的二维码离图片边框的距离
  • 内容:生成二维码的内容,但一定要URLENCODE

...

READ ALL

如何高效的学习PHP

PHP由于入门门槛低,许多快速建站都采用它,好多同学开始学习PHP建站

这些建议都是我自身亲历成长过程中积累的一些看法,仅作参考,相信百分之八十对你都有帮助!

  • 熟悉PHP的语法,熟悉它的语法特性
  • 要有Web基础知识,如HTMLCSSJavaScript这样学习起来容易一些
  • 要重点看PHP的数据类型,数组操作,熟练的操作数组
  • 知道它如何取环境变量,如何获取GETPOST传餐
  • 用PHP写几个经典排序算法
  • 熟悉并知道如何维护php.ini
  • 随意添加扩展,如PDO扩展,并在PHP程序里尝试连接数据库
  • 如果你会C,你可以尝试写一个PHP模块
  • 配置PHP如何再Apache或者Nginx下工作,能明白工作的原理
  • 学会配置Debug环境,并可以在Debug模式下调试代码
  • 尝试写一个留言本,涉及增删改查
  • 尝试写一个上传文件的例子
  • 了解Smarty这类模板引擎的工作原理
  • 熟悉PHP类定义,如何实例化一个类
  • 知道什么是工厂模式、单例模式,它们之间有什么区别,什么场景下使用哪种方式

...

READ ALL

web.py如何在模板中使用美元符号

由于web.py已经在模板中定义$符号位定界符,所以在模板中如果要使用美元符号需要特殊处理。

如我要在模板中输出$name字符串:

$name

报错

<type 'exceptions.NameError'> at /
global name 'name' is not defined

$name被认定为一个变量而不是当作HTML字符串处理。如果想要输出$name字符串必须要这么写:

$$name

保存运行正确输出。

特别是跟jQuery里混合使用的时候,也要注意。如:

$("id").html("Nicholas Lee");

...

READ ALL

Python如何import文件夹下的文件

Python的import包含文件功能就跟PHP的include类似,但更确切的说应该更像是PHP中的require,因为Python里的import只要目标不存在就报错程序无法往下执行。要包含目录里的文件,PHP中只需要给对路径就OK。Python中则不同,下面来看看这个例子。

目录结构:

$ tree ./
./
├── a.py
└── dir
    └── b.py

a.py要import dir目录下的b.py文件。

b.py:

name = 'zhangsan'

a.py:

# coding=utf-8
"import dir 目录下的 b.py 文件"
 
import dir.b
 
print dir.b.name

...

READ ALL

web.py曲折的Hello word!

看了web.py相关手册以后,决定下载试试。web.py不大,下载解压然后python setup.py install安装成功。于是赶紧写出第一个激动人心的Hello word

代码如下:

# coding=utf-8
import web
 
urls=(
  '/','index'
)
 
class index:
  def GET(self):
    return 'Hello Word'
  
app=web.application(urls,globals())
app.run()

控制台运行如下:

python index.py 80
http://0.0.0.0:80/
http://0.0.0.0:80/

...

READ ALL

Django配置URL需要注意的地方

Django中每一个视图的访问都需要配置相应的URL,然而配置URL的时候需要注意末尾是否加了/符号,这个会影响到你的表单提交或者Ajax异步提交的问题。

我们先来看看第一个实例,比如我的URL规则

url(r'^users/api/(\w{1,20})/$','api')

那么我们Ajax提交到这个URL的时候,就需要写完整的URL

http://127.0.0.1/users/api/add/

不能写

http://127.0.0.1/users/api/add

下面来看看提交到http://127.0.0.1/users/api/add的结果

...

READ ALL

Django POST CSRF verification failed. Request aborted

环境

  • Windows 7
  • Python2.7
  • Django1.4.1
  • sqlite3

问题

在使用Django搭建好测试环境后,写了一个提交POST表单提交留言的测试页面。

如图:

full

填写表单,点击“提交留言”按钮提交到服务器,却出现

Forbidden (403)
CSRF verification failed. Request aborted.

由于之前使用GET方式提交表单内容测试均正常,就以为这个问题估计是配置问题没细看后边的帮助提示直接在网上搜索解决方案。

...

READ ALL

Django新版添加app提示模块不存在解决方法

使用Django添加应用的时候,一直提示

Error: No module named myapp

意思是找不到这个名字的应用,可是我已经startapp成功,并且系统已经创建相应的目录

D:\Python27\Scripts\website>python manage.py syncdb
Error: No module named myapp

难道官方的文档有错,我manage.py startapp myapp已经成功,并且已经创建目录与文件。

并在settings.pyINSTALLED_APPS里添加应用,如下代码

...

READ ALL