Flask-MongoAlchemy中文文档
来源:互联网 发布:血观音 知乎 编辑:程序博客网 时间:2024/05/17 08:22
安装
您可以轻松地使用PIP或easy_install的安装:
$ [sudo] pip install Flask-MongoAlchemy$ [sudo] easy_install Flask-MongoAlchemy
如果你愿意,你可以使用最新git版本
$ git clone https://github.com/cobrateam/flask-mongoalchemy.git$ cd flask-mongoalchemy$ [sudo] python setup.py develop
请确认您已经安装MongoDB的使用它。
用法
你需要先创建一个MongoAlchemy对象,并用它来创建数据库文件。下面是一个完整的例子:
from flask import Flaskfrom flaskext.mongoalchemy import MongoAlchemyapp = Flask(__name__)app.config['MONGOALCHEMY_DATABASE'] = 'library'db = MongoAlchemy(app)class Author(db.Document): name = db.StringField()class Book(db.Document): title = db.StringField() author = db.DocumentField(Author) year = db.IntField()
现在你可以创建Author和Book:
from application import Author, Bookmark_pilgrim = Author(name='Mark Pilgrim')dive = Book(title='Dive Into Python', author=mark_pilgrim, year=2004)
然后保存
mark_pilgrim.save()dive.save()
如果你改变了原来的文件内容,你可以调用save()
mark_pilgrim.name = 'Mark Stalone'mark_pilgrim.save()
可以调用其remove()方法从数据库中删除一个文件:
dive.remove()
另一个基本查询文件操作。每个文档都有一个查询类的属性。使用起来非常简单:
mark = Author.query.get('76726')mark.name = 'Mark Pilgrim'mark.save()
您还可以使用filter()过滤的方法,而不是get()方法:
mark = Author.query.filter(Author.name == 'Mark Pilgrim').first()mark.name = 'Steve Jobs'mark.save()
使用身份验证的连接
这里可以使用的身份验证连接到一个MongoDB服务器。认证可以是基于服务器或基于数据库。
默认方式是使用基于服务器的身份认证,使用基于数据库的认证,你需要关闭的配置的值MONGOALCHEMY_SERVER_AUTH的(见下一节更详细的配置值):
app.config['MONGOALCHEMY_SERVER_AUTH'] = False
配置值
下面的Flask-MongoAlchemy的配置值:MONGOALCHEMY_DATABASE 数据库的名称。
MONGOALCHEMY_SERVER MongoDB服务器。默认值:localhost
MONGOALCHEMY_PORT MongoDB服务器监听端口。默认值:27017
MONGOALCHEMY_USER 数据库连接的用户。默认值:None
MONGOALCHEMY_PASSWORD 数据库连接的密码。默认值:None
MONGOALCHEMY_SAFE_SESSION 在安全模式下使用session。当在安全模式下,所有的方法,如保存,删除等操作完成。默认值:False
MONGOALCHEMY_OPTIONS MongoDB服务器连接时,额外的选项。例如:safe=true 默认值:None
MONGOALCHEMY_SERVER_AUTH 布尔值,表示使用基于服务器的身份验证或无。当设置为False,将使用基于数据库的认证。默认值:True
API
您可以使用应用程序实例,或调用一个init_app()方法的一个MongoAlchemy的实例对象。这个例子的应用程序实例化:app = Flask(__name__)db = MongoAlchemy(app)
这里调用init_app的()方法:
db = MongoAlchemy()def init_app(): app = Flask(__name__) db.init_app(app) return app
init_app(app)
该回调函数可以用来初始化MongoDB。切勿在未初始化的时候使用,这样会泄漏数据库。
query=None
query_class的一个实例。用于查询数据库。
query_class
查询类的使用。查询属性是这个类的一个实例。默认情况下用于BaseQuery。
别名BaseQuery
remove(safe=None)
删除数据库。
可选的安全参数是一个布尔值,指定是否应该等待操作完成remove方法。
save(safe=None)
保存数据库。
可选的安全参数是一个布尔值,指定是否应该等待操作完成remove方法。
这个类提供了一些方法,并可以扩展到用户文档提供了一个自定义的查询类。
这里举个例子:
from flaskext.mongoalchemy import BaseQueryfrom application import dbclass MyCustomizedQuery(BaseQuery): def get_johns(self): return self.filter(self.type.first_name == 'John')class Person(db.Document): query_class = MyCustomizedQuery name = db.StringField()
johns = Person.query.get_johns().first()
注意:如果要扩展BaseQuery写一个__init__方法,你应该总是通过super关键字调用这个类的__init__。
class MyQuery(BaseQuery): def __init__(self, *args, **kwargs): super(MyQuery, self).__init__(*args, **kwargs)
first_or_404()
如果结果不包含任何数据将返回的第一个结果查询,或中止
get(mongo_id)
如果没有找到,返回一个Document实例mongo_id“或”None“
get_or_404(mongo_id)
像get()方法,但如果没有找到,而不是返回None中止与404
分页
PAGINATE(page,per_page=20,error_out= True)
从页返回per_page项默认情况下,它会中止与404如果没有被发现,并大于1。这种行为可以被禁用通过设置假error_out。
class flaskext.mongoalchemy.Pagination(query,per_page,total,items)
内部辅助类返回由PAGINATE()。
has_next()
返回 True,如果存在下一个页面。
has_prev()
返回True,如果前一个页面存在。
items=None
项目为当前页的列表
next(error_out=False)
下页返回分页对象。
next_num
的翻页数。
page=None
当前页码
- Flask-MongoAlchemy中文文档
- Flask-Bcrypt中文文档发布了!
- Flask 学习文档
- 一个MongoAlchemy的例子
- Flask 中文路径问题
- 【Flask】Flask-Admin修改成中文显示
- flask/python超实用文档
- 【译】Flask-Admin中文入门教程
- Flask不能显示中文解决办法
- 重看Flask文档,新收获总结
- flask使用文档<一> ----------每天翻译一点点
- Apache+mod_wsgi+Flask部署文档--ubuntu
- 关于flask中文件下载的实例
- flask
- flask
- Flask
- Flask
- flask
- JAVA反射机制
- android JNI utils/Log.h 找不到 解决方法
- eclipse 导入类 提示The import XXX cannot be resolved
- Autoconf
- jquery中正则表达式
- Flask-MongoAlchemy中文文档
- Printer Queue(poj 3125)
- poj,1363,Rails
- awk处理之案例一:awk 处理百分比的问题
- Android UI设计特效
- android基础篇------------java基础(5) (四种内部类的使用和区别)
- ARM - PcDuino 初步使用(3)- 挂载网络文件系统
- 北京IMAX影院全攻略
- phpmyadmin入侵实例