使用FLask框架

背景

  • 之前的每周的任务都是用的Bottle框架, 团队的三位小伙伴讨论后, 决定使用Flask框架.
  • 原因:
    • 第三方库更多
    • 学习成本低, 因与Bottle很类似.
    • 这样就学会了两个框架;-)

学习过程

学习Flask框架基本用法

  • request与bottle中的request微微不同.
  • 形式为:
    • request.form['XXX']
    • request.files['XXX']

如何存储图片信息

  • Basic

  • 限制上传图片大小

    • app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024
      • 最大16 megabytes
  • 使用SAE Storage

    • 先看一段代码

      c = Connection()
      bucket = c.get_bucket('imges')
      bucket.put_object(filename, file.read()) 
      return bucket.generate_url(filename)
      
    • 1st line: 与storage建立连接.
    • 2nd line: 指针对应到文件夹imges
    • 3rd line: 将文件名,文件存到images中.
    • 4th line: 返回这个文件名的链接.
    • 这样, 通过这样一段简单的代码就可以把图片保存到SAE storage中.
    • 代码

数据库设计.

  • 现阶段使用KVDB

    key = strftime("%y%m%d%H%M%S" , localtime())
    value = {'pet_title':pet_title, 'species': species,'location':location, 'tel':tel, 'supplement':supplement,'photo_url':photo_url,'time':time}

    • 目前的设计比较简单, 随着功能的增加, 会逐渐修改

      基本功能

  • 注册

    • 基于@huijuannan的模板, 修改成了注册的模板, 其中遇到的一个坑
      • kv.set(key,value)一直写不仅数据库, 因为是用dev_server.py 本地调试, 所以通过好几次print才确定是什么位置出现问题, 但是查不出原因.
      • 后来意识到可是key只能写str型, 于是用 type()检查了一下key的类型, 才发现我给的是'unicode', 于是用str()变形, Done!
  • 登录

    • 原理跟注册类似, 只需要根据用户名, 找出数据库中的密码是否与输入密码一直即可.

Templates

备份

Debug

  • 图片为中文名称, 不包含任何jpg等等时,会出现错误.
  • 图片名字如果重复, 则会覆盖之前的存储.
  • 密码最少输入六位
  • 用户名查重
  • 检查email类型
  • 页面跳转

Refenrences