[关闭]
@Vany 2016-01-27T14:37:59.000000Z 字数 1402 阅读 1021

Some tips on Python,Flask,MongoDB

Python Flask MongoDB PyMongo Tips


Flask

flash函数

要在return render_template前调用flash函数,相当于给flash的message赋值,接着在处理模板时才可以把该值放进去。

Session

放弃(Abandon)某个Session:
Session.pop('name', None)

Jinja2模板

  1. 可以访问到flash,方便直接获取结果,但也有特殊写法:variable = get_flashed_message(),然后再判断、输出
  2. 可以访问到session,session['name']即可取值
  3. 可以访问到g,全局对象
  4. 可以访问到request,请求对象,可以用一些数据
  5. 内部的语法:if、for、with,其中if、for要有endif/endfor

上传文件

MongoDB

  1. MongoDB其实就是一个二进制储存的JSON格式的数据库,文本数据库
  2. 没有严格的表、Schema这类的东西限制,非常自由,即使在一个“表”里,也可以存不同格式的数据(JSON的head不同)
  3. 最上层的叫db(数据库),可以在mongo界面下用show dbs来查看有什么数据库,可以用use dbname来切换db(如果之前没有这个db也可以,一旦你对这个db有写入操作,那么就自动建立了)
  4. 数据库的下一级叫做Collection,可以理解成是一个集合(类似于以前的表),但是这里面存的可以是各式各样的JSON,并不一定是同一种Schema的;若想看当前db下面的Collection,可以用show collections,或者show tables(目前发现两者是等价的)
  5. Collection不需要建立,当你往Collection里添加数据时,自动就建立了,语句如下:db.collectionName.insert(JSON)
  6. 查找功能:db.collectionName.find(condition),其中condition可以为空,返回所有的数据;如果写上一些值,那么就匹配和这些值对应的字段相同的记录,例如db.userinfo.find({'name':'tsy'})为返回名字为'tsy'的所有记录。

PyMongo

  1. 要先在调用PyMongo前指定数据库的名称:app.config['MONGO_DBNAME'] = 'MONGO',然后再初始化PyMongo类:mongo = PyMongo(app)
  2. 使用时,mongo.db['tablename'].find(condition)去查询,返回来的是一个Cursor,假设即为r,可以用r[i]来访问第几条记录,可以用r.count()来判断一共有几条记录
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注