Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
flask-admin
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Python-Dev
flask-admin
Commits
0cc13aba
Commit
0cc13aba
authored
Jul 05, 2015
by
Petrus J.v.Rensburg
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Re-arange 'advanced' page sections.
parent
acc37622
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
89 additions
and
91 deletions
+89
-91
advanced.rst
doc/advanced.rst
+87
-89
introduction.rst
doc/introduction.rst
+2
-2
No files found.
doc/advanced.rst
View file @
0cc13aba
...
@@ -3,7 +3,87 @@
...
@@ -3,7 +3,87 @@
Advanced Functionality
Advanced Functionality
=================================
=================================
.. _extending-builtin-templates:
Localization With Flask-Babelex
------------------------------------------
****
Flask-Admin comes with translations built-in for several languages.
Enabling localization is simple:
#. Install `Flask-BabelEx <http://github.com/mrjoes/flask-babelex/>`_ to do the heavy
lifting. It's a fork of the
`Flask-Babel <http://github.com/mitshuhiko/flask-babel/>`_ package::
pip install flask-babelex
#. Initialize Flask-BabelEx by creating instance of `Babel` class::
from flask import app
from flask_babelex import Babel
app = Flask(__name__)
babel = Babel(app)
#. Create a locale selector function::
@babel.localeselector
def get_locale():
if request.args.get('lang'):
session['lang'] = request.args.get('lang')
return session.get('lang', 'en')
Now, you could try out a French version of the application at: `http://localhost:5000/admin/?lang=fr <http://localhost:5000/admin/?lang=fr>`_.
Go ahead and add your own logic to the locale selector function. The application could store locale in
a user profile, cookie, session, etc. And it could interrogate the `Accept-Language`
header for making the selection automatically.
If the builtin translations are not enough, look at the `Flask-BabelEx documentation <https://pythonhosted.org/Flask-BabelEx/>`_
to see how you can add your own.
.. _file-admin:
Managing Files & Folders
--------------------------------
****
To manage static files, that are not tied to your db model, Flask-Admin comes with
the FileAdmin plugin. It gives you the ability to upload, delete, rename, etc. You
can use it by adding a FileAdmin view to your app::
from flask_admin.contrib.fileadmin import FileAdmin
import os.path as op
# Flask setup here
admin = Admin(app, name='microblog', template_mode='bootstrap3')
path = op.join(op.dirname(__file__), 'static')
admin.add_view(FileAdmin(path, '/static/', name='Static Files'))
You can disable uploads, disable file deletion, restrict file uploads to certain types, etc.
Check :mod:`flask_admin.contrib.fileadmin` in the API documentation for more details.
Adding a Redis Console
--------------------------
****
Another plugin that's available, is the Redis Console. If you have a Redis
instance running on the same machine as your app, you can::
from redis import Redis
from flask_admin.contrib import rediscli
# Flask setup here
admin = Admin(app, name='microblog', template_mode='bootstrap3')
path = op.join(op.dirname(__file__), 'static')
admin.add_view(rediscli.RedisCli(Redis()))
Replacing Individual Form Fields
Replacing Individual Form Fields
...
@@ -71,79 +151,15 @@ at :mod:`flask_admin.contrib.mongoengine.fields`.
...
@@ -71,79 +151,15 @@ at :mod:`flask_admin.contrib.mongoengine.fields`.
If you just want to manage static files in a directory, without tying them to a database model, then
If you just want to manage static files in a directory, without tying them to a database model, then
rather use the handy :ref:`File-Admin<file-admin>` plugin.
rather use the handy :ref:`File-Admin<file-admin>` plugin.
Localization with Flask-Babelex
Managing Geographical Models
------------------------------------------
-------------------------------------------
****
Flask-Admin comes with translations built-in for several languages.
Enabling localization is simple:
#. Install `Flask-BabelEx <http://github.com/mrjoes/flask-babelex/>`_ to do the heavy
lifting. It's a fork of the
`Flask-Babel <http://github.com/mitshuhiko/flask-babel/>`_ package::
pip install flask-babelex
#. Initialize Flask-BabelEx by creating instance of `Babel` class::
from flask import app
from flask_babelex import Babel
app = Flask(__name__)
babel = Babel(app)
#. Create a locale selector function::
@babel.localeselector
def get_locale():
if request.args.get('lang'):
session['lang'] = request.args.get('lang')
return session.get('lang', 'en')
Now, you could try out a French version of the application at: `http://localhost:5000/admin/?lang=fr <http://localhost:5000/admin/?lang=fr>`_.
Go ahead and add your own logic to the locale selector function. The application could store locale in
a user profile, cookie, session, etc. And it could interrogate the `Accept-Language`
header for making the selection automatically.
If the builtin translations are not enough, look at the `Flask-BabelEx documentation <https://pythonhosted.org/Flask-BabelEx/>`_
to see how you can add your own.
.. _file-admin:
Managing Files & Folders
--------------------------------
****
To manage static files, that are not tied to your db model, Flask-Admin comes with
the FileAdmin plugin. It gives you the ability to upload, delete, rename, etc. You
can use it by adding a FileAdmin view to your app::
from flask_admin.contrib.fileadmin import FileAdmin
import os.path as op
# Flask setup here
admin = Admin(app, name='microblog', template_mode='bootstrap3')
path = op.join(op.dirname(__file__), 'static')
admin.add_view(FileAdmin(path, '/static/', name='Static Files'))
You can disable uploads, disable file deletion, restrict file uploads to certain types, etc.
Check :mod:`flask_admin.contrib.fileadmin` in the API documentation for more details.
Managing geographical models with the GeoAlchemy backend
----------------------------------------------------------------
****
****
If you want to store spatial information in a GIS database, Flask-Admin has
If you want to store spatial information in a GIS database, Flask-Admin has
you covered. The
`GeoAlchemy <http://geoalchemy-2.readthedocs.org/>`_
backend
you covered. The
GeoAlchemy
backend
extends the SQLAlchemy backend (just as
extends the SQLAlchemy backend (just as
GeoAlchemy
extends SQLAlchemy) to give you a pretty and functional map-based
`GeoAlchemy <http://geoalchemy-2.readthedocs.org/>`_
extends SQLAlchemy) to give you a pretty and functional map-based
editor for your admin pages.
editor for your admin pages.
Some notable features include:
Some notable features include:
...
@@ -199,7 +215,7 @@ There's currently no way to sort, filter, or search on geometric fields
...
@@ -199,7 +215,7 @@ There's currently no way to sort, filter, or search on geometric fields
in the admin. It's not clear that there's a good way to do so.
in the admin. It's not clear that there's a good way to do so.
If you have any ideas or suggestions, make a pull request!
If you have any ideas or suggestions, make a pull request!
Customising
builtin forms via form rendering r
ules
Customising
Builtin Forms via Rendering R
ules
--------------------------------------------------------
--------------------------------------------------------
****
****
...
@@ -400,7 +416,7 @@ On top of that you can add sortable columns, filters, text search, etc.
...
@@ -400,7 +416,7 @@ On top of that you can add sortable columns, filters, text search, etc.
For more, check the :class:`~flask_admin.contrib.pymongoe` API documentation. Or look at
For more, check the :class:`~flask_admin.contrib.pymongoe` API documentation. Or look at
the Peewee example at https://github.com/flask-admin/flask-admin/tree/master/examples/pymongo.
the Peewee example at https://github.com/flask-admin/flask-admin/tree/master/examples/pymongo.
Migrating
f
rom Django
Migrating
F
rom Django
-------------------------
-------------------------
****
****
...
@@ -457,24 +473,6 @@ backends) and specific backend documentation, for example
...
@@ -457,24 +473,6 @@ backends) and specific backend documentation, for example
:class:`~flask_admin.contrib.sqla.ModelView`. There's much more
:class:`~flask_admin.contrib.sqla.ModelView`. There's much more
than what is displayed in this table.
than what is displayed in this table.
Adding a Redis console
--------------------------
****
Another plugin that's available, is the Redis Console. If you have a Redis
instance running on the same machine as your app, you can::
from redis import Redis
from flask_admin.contrib import rediscli
# Flask setup here
admin = Admin(app, name='microblog', template_mode='bootstrap3')
path = op.join(op.dirname(__file__), 'static')
admin.add_view(rediscli.RedisCli(Redis()))
Overriding the Form Scaffolding
Overriding the Form Scaffolding
---------------------------------
---------------------------------
...
...
doc/introduction.rst
View file @
0cc13aba
...
@@ -57,8 +57,6 @@ ORM backends that are available, see :ref:`database-backends`.
...
@@ -57,8 +57,6 @@ ORM backends that are available, see :ref:`database-backends`.
Enabling CSRF Validation
Enabling CSRF Validation
-----------------------------
-----------------------------
****
To add CSRF protection to the forms that are generated by *ModelView* instances, use the
To add CSRF protection to the forms that are generated by *ModelView* instances, use the
`FlaskWTF <https://flask-wtf.readthedocs.org/>`_ form class in your *ModelView*
`FlaskWTF <https://flask-wtf.readthedocs.org/>`_ form class in your *ModelView*
subclass by specifying the *form_base_class* parameter::
subclass by specifying the *form_base_class* parameter::
...
@@ -372,6 +370,8 @@ the Flask-Admin source into your project's `templates/admin/` directory.
...
@@ -372,6 +370,8 @@ the Flask-Admin source into your project's `templates/admin/` directory.
As long as the filenames stay the same, the templates in your project directory should
As long as the filenames stay the same, the templates in your project directory should
automatically take precedence over the builtin ones.
automatically take precedence over the builtin ones.
.. _extending-builtin-templates:
Extending the Builtin Templates
Extending the Builtin Templates
---------------------------------
---------------------------------
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment