Herramientas de usuario

Herramientas del sitio


wiki2:python:flask:mongoalchemy

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
wiki2:python:flask:mongoalchemy [2015/08/08 13:44]
alfred
wiki2:python:flask:mongoalchemy [2020/05/09 09:25] (actual)
Línea 6: Línea 6:
  
 ===== Use ===== ===== Use =====
 +==== Initialization ====
 +
 <code python> <code python>
 from flask import Flask from flask import Flask
Línea 22: Línea 24:
 </​code>​ </​code>​
  
 +There are other ways to initialize it:
 +<code python>
 +app = Flask(__name__)
 +db = MongoAlchemy(app)
 +</​code>​
 +<code python>
 +db = MongoAlchemy()
 +def init_app():
 +    app = Flask(__name__)
 +    db.init_app(app)
 +    return app
 +</​code>​
 ==== Create, update, delete ==== ==== Create, update, delete ====
 Now you can create authors and books: Now you can create authors and books:
Línea 55: Línea 69:
 >>>​ mark.save() >>>​ mark.save()
 </​code>​ </​code>​
 +
 +=== Advanced ===
 +You can create your own queries:
 +<code python>
 +from flask.ext.mongoalchemy import BaseQuery
 +from application import db
 +
 +class MyCustomizedQuery(BaseQuery):​
 +
 +    def get_johns(self):​
 +        return self.filter(self.type.first_name == '​John'​)
 +
 +class Person(db.Document):​
 +    query_class = MyCustomizedQuery
 +    name = db.StringField()
 +</​code>​
 +
 +There are other functions:
 +  * first_or_404()
 +  * get(mongo_id)
 +  * get_or_404(mongo_id)
 +
 +=== Pagination ===
 +You can call a method for a query: ''​paginate(page,​ per_page=20,​ error_out=True)''​. This method returns a ''​Pagination''​ object in which you can call...
 +  * has_next()
 +  * has_prev()
 +  * items = None
 +  * next(error_out=False)
 +  * next_num
 +  * page = None
 +  * pages
 +  * per_page = None
 +  * prev(error_out=False)
 +  * prev_num
 +  * query = None
 +  * total = None
 +
 +[[https://​pythonhosted.org/​Flask-MongoAlchemy/​index.html#​flask.ext.mongoalchemy.Pagination.has_next|Documentation for these methods]]
 +===== Configuration =====
 +<code python>
 +>>>​ app.config['​MONGOALCHEMY_SERVER_AUTH'​] = False
 +</​code>​
 +There are values to change in Mongo config:
 +  * MONGOALCHEMY_DATABASE
 +  * MONGOALCHEMY_SERVER
 +  * MONGOALCHEMY_PORT
 +  * MONGOALCHEMY_USER
 +  * MONGOALCHEMY_PASSWORD
 +  * MONGOALCHEMY_SAFE_SESSION
 +  * MONGOALCHEMY_OPTIONS
 +  * MONGOALCHEMY_SERVER_AUTH
 +  * MONGOALCHEMY_REPLICA_SET
 +  * MONGOALCHEMY_CONNECTION_STRING
 +
 +
 +When MongoAlchemy or init_app() are invoked with only one argument (the Flask instance), a configuration value prefix of MONGOALCHEMY is assumed; this can be overridden with the config_prefix argument, for example:
 +<code python>
 +app = Flask(__name__)
 +# defaulting to MONGOENGINE prefix
 +mongo1 = MongoAlchemy(app)
 +# using another database config
 +app.config['​OTHER_DBNAME'​] = '​other'​
 +mongo2 = MongoAlchemy(app,​ config_prefix='​OTHER'​)
 +</​code>​
 +
wiki2/python/flask/mongoalchemy.1439041487.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)