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