Hot For Coding
  • 文件名编码后浏览器访问提示找不到文件解决方法

    昨天做一个项目,其中有一个需求是每一张图片对应一小段文字对图片的说明,普通的做法是新建一个表然后把图片名与说明文字都记录到数据库内。仔细考虑后感觉这个应用不要数据库也能完成,我实现的方案是把说明文字url encode后当做文件名,这样当我读取文件的时候再把文件名url decode就可以后驱图片的文字说明了。

    可是通过浏览器访问图片时却提示找不到文件,如有一张图片的说明文字为琼台博客,url encode后生成的文件名如下

    %E7%90%BC%E5%8F%B0%E5%8D%9A%E5%AE%A2.jpg

    于是我通过浏览器访问图片,提示找不到

    ...

    READ ALL

  • Python除法不能求小数位数解决方法

    求一个算式

    a = 1
    b = 2
    c = 3
     
    print c * (a / b)
    

    运行结果总是0,反复检查拆开以后,发现在Python里,整数初整数,只能得出整数

    也就是ab这个结果永远是0,只要把a或者b其中一个数改成浮点数即可。

    a = 1
    b = 2
    c = 3
     
    print c * (a / float(b))
    print c * (float(a) / b)
    

    这样才能准确算出ab的正确结果,当然,如果ab大,并且不需要小数位数部分可以不用float。

    如:

    a = 1
    b = 2
    c = 3
     
    print c / a # 3
    print c / b # 1
    print c / float(b) # 1.5
    

    ...

    READ ALL

  • web.py获取上传文件名一个需要注意的细节

    直接切入主题,从HTML页面上传文件,Python接收处理。但其中发现有些小问题,把它写出来,算是积累吧!

    HTML页面代码:

    <form action="/admin/addgoodsaction/" method="post" enctype="multipart/form-data">
      <input type="file" name="image" />
    </form>
    

    Python处理部分代码:

    i = web.input()
    
    return i.image.filename
    

    执行结果切提示:

    <type 'exceptions.AttributeError'> at /admin/addgoodsaction/
    'str' object has no attribute 'filename'

    ...

    READ ALL

  • Python version 2.7 required, which was not found in the registry

    安装PIL库的时候,直接提示

    Python version 2.7 required, which was not found in the registry

    如图:

    full

    大意是说找不到注册表,网上搜索解决方案。

    新建一个register.py文件写入代码:

    import sys
      
    from _winreg import *
      
    # tweak as necessary
    version = sys.version[:3]
    installpath = sys.prefix
      
    regpath = "SOFTWARE\\Python\\Pythoncore\\%s\\" % (version)
    installkey = "InstallPath"
    pythonkey = "PythonPath"
    pythonpath = "%s;%s\\Lib\\;%s\\DLLs\\" % (
        installpath, installpath, installpath
    )
      
    def RegisterPy():
      try:
        reg = OpenKey(HKEY_CURRENT_USER, regpath)
    
      except EnvironmentError as e:
        try:
          reg = CreateKey(HKEY_CURRENT_USER, regpath)
          SetValue(reg, installkey, REG_SZ, installpath)
          SetValue(reg, pythonkey, REG_SZ, pythonpath)
          CloseKey(reg)
        except:
          print "*** Unable to register!"
          return
        print "--- Python", version, "is now registered!"
        return
    
      if (QueryValue(reg, installkey) == installpath and
        QueryValue(reg, pythonkey) == pythonpath):
        CloseKey(reg)
        print "=== Python", version, "is already registered!"
        return
    
      CloseKey(reg)
    
      print "*** Unable to register!"
      print "*** You probably have another Python installation!"
    

    ...

    READ ALL

  • 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("琼台博客");
    

    ...

    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