Merge branch 'master' of github.com:mitsuhiko/flask
This commit is contained in:
commit
43f41201e9
8 changed files with 16 additions and 13 deletions
4
CHANGES
4
CHANGES
|
|
@ -11,7 +11,7 @@ Release date to be decided.
|
||||||
Version 0.9
|
Version 0.9
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
Released on July 1st 2012, codename Camapri.
|
Released on July 1st 2012, codename Campari.
|
||||||
|
|
||||||
- The :func:`flask.Request.on_json_loading_failed` now returns a JSON formatted
|
- The :func:`flask.Request.on_json_loading_failed` now returns a JSON formatted
|
||||||
response by default.
|
response by default.
|
||||||
|
|
@ -82,7 +82,7 @@ Released on July 1st 2012, codename Camapri.
|
||||||
Version 0.8.1
|
Version 0.8.1
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
Bugfix release, released on July 1th 2012
|
Bugfix release, released on July 1st 2012
|
||||||
|
|
||||||
- Fixed an issue with the undocumented `flask.session` module to not
|
- Fixed an issue with the undocumented `flask.session` module to not
|
||||||
work properly on Python 2.5. It should not be used but did cause
|
work properly on Python 2.5. It should not be used but did cause
|
||||||
|
|
|
||||||
|
|
@ -44,8 +44,7 @@ you can have more than one application in the same Python process.
|
||||||
|
|
||||||
So how does the code find the “right” application? In the past we
|
So how does the code find the “right” application? In the past we
|
||||||
recommended passing applications around explicitly, but that caused issues
|
recommended passing applications around explicitly, but that caused issues
|
||||||
with libraries that were not designed with that in mind for libraries for
|
with libraries that were not designed with that in mind.
|
||||||
which it was too inconvenient to make this work.
|
|
||||||
|
|
||||||
A common workaround for that problem was to use the
|
A common workaround for that problem was to use the
|
||||||
:data:`~flask.current_app` proxy later on, which was bound to the current
|
:data:`~flask.current_app` proxy later on, which was bound to the current
|
||||||
|
|
|
||||||
|
|
@ -90,9 +90,9 @@ since decorators could be fired in undefined order when the application is
|
||||||
split into multiple modules.
|
split into multiple modules.
|
||||||
|
|
||||||
Another design decision with the Werkzeug routing system is that routes
|
Another design decision with the Werkzeug routing system is that routes
|
||||||
in Werkzeug try to ensure that there is that URLs are unique. Werkzeug
|
in Werkzeug try to ensure that URLs are unique. Werkzeug will go quite far
|
||||||
will go quite far with that in that it will automatically redirect to a
|
with that in that it will automatically redirect to a canonical URL if a route
|
||||||
canonical URL if a route is ambiguous.
|
is ambiguous.
|
||||||
|
|
||||||
|
|
||||||
One Template Engine
|
One Template Engine
|
||||||
|
|
|
||||||
|
|
@ -377,7 +377,7 @@ package it's actually inside your package:
|
||||||
/hello.html
|
/hello.html
|
||||||
|
|
||||||
For templates you can use the full power of Jinja2 templates. Head over
|
For templates you can use the full power of Jinja2 templates. Head over
|
||||||
to the the official `Jinja2 Template Documentation
|
to the official `Jinja2 Template Documentation
|
||||||
<http://jinja.pocoo.org/2/documentation/templates>`_ for more information.
|
<http://jinja.pocoo.org/2/documentation/templates>`_ for more information.
|
||||||
|
|
||||||
Here is an example template:
|
Here is an example template:
|
||||||
|
|
|
||||||
|
|
@ -23,14 +23,16 @@ for you to the application.
|
||||||
If you want to do that, you first have to import the
|
If you want to do that, you first have to import the
|
||||||
:func:`contextlib.closing` function from the contextlib package. If you
|
:func:`contextlib.closing` function from the contextlib package. If you
|
||||||
want to use Python 2.5 it's also necessary to enable the `with` statement
|
want to use Python 2.5 it's also necessary to enable the `with` statement
|
||||||
first (`__future__` imports must be the very first import)::
|
first (`__future__` imports must be the very first import). Accordingly,
|
||||||
|
add the following lines to your existing imports in `flaskr.py`::
|
||||||
|
|
||||||
from __future__ import with_statement
|
from __future__ import with_statement
|
||||||
from contextlib import closing
|
from contextlib import closing
|
||||||
|
|
||||||
Next we can create a function called `init_db` that initializes the
|
Next we can create a function called `init_db` that initializes the
|
||||||
database. For this we can use the `connect_db` function we defined
|
database. For this we can use the `connect_db` function we defined
|
||||||
earlier. Just add that function below the `connect_db` function::
|
earlier. Just add that function below the `connect_db` function in
|
||||||
|
`flask.py`::
|
||||||
|
|
||||||
def init_db():
|
def init_db():
|
||||||
with closing(connect_db()) as db:
|
with closing(connect_db()) as db:
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
Introducing Flaskr
|
Introducing Flaskr
|
||||||
==================
|
==================
|
||||||
|
|
||||||
We will call our blogging application flaskr here, feel free to chose a
|
We will call our blogging application flaskr here, feel free to choose a
|
||||||
less web-2.0-ish name ;) Basically we want it to do the following things:
|
less web-2.0-ish name ;) Basically we want it to do the following things:
|
||||||
|
|
||||||
1. let the user sign in and out with credentials specified in the
|
1. let the user sign in and out with credentials specified in the
|
||||||
|
|
|
||||||
|
|
@ -1468,7 +1468,7 @@ class Flask(_PackageBoundObject):
|
||||||
|
|
||||||
.. versionchanged:: 0.9
|
.. versionchanged:: 0.9
|
||||||
This can now also be called without a request object when the
|
This can now also be called without a request object when the
|
||||||
UR adapter is created for the application context.
|
URL adapter is created for the application context.
|
||||||
"""
|
"""
|
||||||
if request is not None:
|
if request is not None:
|
||||||
return self.url_map.bind_to_environ(request.environ,
|
return self.url_map.bind_to_environ(request.environ,
|
||||||
|
|
|
||||||
|
|
@ -305,7 +305,9 @@ def url_for(endpoint, **values):
|
||||||
|
|
||||||
:param endpoint: the endpoint of the URL (name of the function)
|
:param endpoint: the endpoint of the URL (name of the function)
|
||||||
:param values: the variable arguments of the URL rule
|
:param values: the variable arguments of the URL rule
|
||||||
:param _external: if set to `True`, an absolute URL is generated.
|
:param _external: if set to `True`, an absolute URL is generated. Server
|
||||||
|
address can be changed via `SERVER_NAME` configuration variable which
|
||||||
|
defaults to `localhost`.
|
||||||
:param _anchor: if provided this is added as anchor to the URL.
|
:param _anchor: if provided this is added as anchor to the URL.
|
||||||
:param _method: if provided this explicitly specifies an HTTP method.
|
:param _method: if provided this explicitly specifies an HTTP method.
|
||||||
"""
|
"""
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue