Dropbox Python SDK支持Flask应用程序。
项目描述
=============
Flask-Dropbox
=============
.. image:: https://travis-ci.org/playpauseandstop/Flask-Dropbox.png?branch=master
:target: https://travis-ci.org/playpauseandstop/Flask-Dropbox
.. image:: https://pypip.in/v/Flask-Dropbox/badge.png
:target: https://crate.io/packages/Flask-Dropbox
Dropbox Python SDK支持Flask应用程序。
需求
============
* `Python <https://pythonlang.cn/>`_ 2.6或2.7
* `Flask <https://flask.org.cn/>`_ 0.8或更高版本
* `Dropbox Python SDK <http://pypi.python.org/pypi/dropbox>`_ 1.4或更高版本
安装
============
::
$ pip install Flask-Dropbox
许可证
=======
``Flask-Dropbox``使用`BSD许可证
<https://github.com/playpauseandstop/Flask-Dropbox/blob/master/LICENSE>`_.
配置
=============
SECRET_KEY
----------
**必需的**。由于令牌将被存储在Flask的`session
<https://flask.org.cn/docs/quickstart/#sessions>`_ 实例中,您需要
为您的应用程序配置密钥。
DROPBOX_KEY
-----------
**必需的**。从Dropbox开发者网站获取的应用密钥。
DROPBOX_SECRET
--------------
**必需的**。从Dropbox开发者网站获取的密钥。
DROPBOX_ACCESS_TYPE
-------------------
**必需的**。应根据您的应用程序配置为``'dropbox'``或``'app_folder'``。
DROPBOX_CALLBACK_URL
--------------------
默认情况下,您不需要提供此设置,因为``Flask-Dropbox``
将自动使用当前主机和请求类型设置回调URL,
但如果您不信任我们,您可以手动重写此设置。
DROPBOX_CALLBACK_TEMPLATE
-------------------------
用于在处理OAuth回调时显示错误的模板
来自Dropbox API。默认为:``'dropbox/callback.html'``。
以下布尔变量可以发送到模板
* ``error_oauth_token`` - Dropbox API未返回OAuth令牌。
* ``error_not_equal_tokens`` - Dropbox API的OAuth令牌与
存储在Flask会话中的请求令牌不相等。
* ``error_response`` - Dropbox API返回``ErrorResponse``实例。同时
实际异常作为``error``变量也会发送到模板。
DROPBOX_LOGIN_REDIRECT
----------------------
用户成功使用Dropbox账户登录后重定向到的页面。默认为:``/``。
。
DROPBOX_LOGOUT_REDIRECT
-----------------------
用户从认证的Dropbox会话注销后重定向到的页面。
默认为:``/``。
DROPBOX_CACHE_STORAGE
---------------------
.. 新增版本:0.3
放置账户信息、Dropbox客户端和Dropbox会话实例的位置。在
0.2及以下版本中,所有这些信息都存储在``flask_dropbox.Dropbox``实例中,该实例
不是线程安全的,但从0.3版本开始,所有这些值都存储到``flask.g``中。如果您
需要自定义存储,可以使用导入的对象或字符串覆盖此设置。
。
用法
=====
``app.py``:
from flask import Flask
from flask.ext.dropbox import Dropbox, DropboxBlueprint
import settings
app = Flask(__name__)
app.config.from_object(settings)
dropbox = Dropbox(app)
dropbox.register_blueprint(url_prefix='/dropbox')
``settings.py``:
SECRET_KEY = 'some-secret-key'
DROPBOX_KEY = 'dropbox-app-key'
DROPBOX_SECRET = 'dropbox-app-secret'
DROPBOX_ACCESS_TYPE = 'app_folder'
``views.py``:
from flask import url_for, redirect, request
from werkzeug import secure_filename
from app import app, dropbox
@app.route('/')
def home()
return u'点击 <a href="%s">此处</a> 使用Dropbox登录。' % \
dropbox.login_url
@app.route('/success/<path:filename>')
def success(filename)
return u'文件已成功上传为 /%s' % filename
@app.route('/upload', methods=('GET', 'POST'))
def upload()
if not dropbox.is_authenticated
return redirect(url_for('home'))
if request.method == 'POST'
file_obj = request.files['file']
if file_obj
client = dropbox.client
filename = secure_filename(file.filename)
# 实际上传过程
result = client.put_file('/' + filename, file_obj.read())
path = result['path'].lstrip('/')
return redirect(url_for('success', filename=path))
return u'<form action="" method="post">' \
u'<input name="file" type="file">' \
u'<input type="submit" value="上传">' \
u'</form>'
错误、功能请求?
=======================
如果您在``Flask-Dropbox``库中发现了某些错误,请向项目的`GitHub issues
添加新问题
<https://github.com/playpauseandstop/Flask-Dropbox/issues>`_。
变更日志
=========
0.3
---
+ 支持Flask 0.10
+ 将账户信息、Dropbox客户端和会话存储在线程安全的``flask.g``
存储中,而不是``flask_dropbox.Dropbox``实例
+ 引入``DROPBOX_CACHE_STORAGE``设置
0.2
---
+ 向``Dropbox``扩展类添加``init_app``方法。
+ 不要在初始化``DropboxBlueprint``类时发送``dropbox``实例。
class。
+ 在视图中使用``current_app.extensions['dropbox']``语句获取
已初始化的``Dropbox``实例。
0.1.5
-----
+ 添加``register_blueprint``快捷方式,以一行代码初始化
带有默认值的``DropboxBlueprint``。
+ 将``Dropbox``类从``flask.ext.dropbox.utils``移动到
``flask.ext.dropbox.extension``模块。但主要的是,如果您使用
了``from flask.ext.dropbox import Dropbox``语句,它不会影响您的代码。
0.1.4
-----
+ 在``setup.py``中将``dropbox``库作为安装需求。
+ 更新项目简短描述。
0.1.3
-----
+ 修复通过setup.py安装时的模板处理
0.1.2
-----
+ 添加对Dropbox SDK 1.4.1的支持
0.1.1
-----
+ 检查访问令牌是否是``oauth.OAuthToken``类的实例
存在于会话中。
0.1
---
* 初次发布。
Flask-Dropbox
=============
.. image:: https://travis-ci.org/playpauseandstop/Flask-Dropbox.png?branch=master
:target: https://travis-ci.org/playpauseandstop/Flask-Dropbox
.. image:: https://pypip.in/v/Flask-Dropbox/badge.png
:target: https://crate.io/packages/Flask-Dropbox
Dropbox Python SDK支持Flask应用程序。
需求
============
* `Python <https://pythonlang.cn/>`_ 2.6或2.7
* `Flask <https://flask.org.cn/>`_ 0.8或更高版本
* `Dropbox Python SDK <http://pypi.python.org/pypi/dropbox>`_ 1.4或更高版本
安装
============
::
$ pip install Flask-Dropbox
许可证
=======
``Flask-Dropbox``使用`BSD许可证
<https://github.com/playpauseandstop/Flask-Dropbox/blob/master/LICENSE>`_.
配置
=============
SECRET_KEY
----------
**必需的**。由于令牌将被存储在Flask的`session
<https://flask.org.cn/docs/quickstart/#sessions>`_ 实例中,您需要
为您的应用程序配置密钥。
DROPBOX_KEY
-----------
**必需的**。从Dropbox开发者网站获取的应用密钥。
DROPBOX_SECRET
--------------
**必需的**。从Dropbox开发者网站获取的密钥。
DROPBOX_ACCESS_TYPE
-------------------
**必需的**。应根据您的应用程序配置为``'dropbox'``或``'app_folder'``。
DROPBOX_CALLBACK_URL
--------------------
默认情况下,您不需要提供此设置,因为``Flask-Dropbox``
将自动使用当前主机和请求类型设置回调URL,
但如果您不信任我们,您可以手动重写此设置。
DROPBOX_CALLBACK_TEMPLATE
-------------------------
用于在处理OAuth回调时显示错误的模板
来自Dropbox API。默认为:``'dropbox/callback.html'``。
以下布尔变量可以发送到模板
* ``error_oauth_token`` - Dropbox API未返回OAuth令牌。
* ``error_not_equal_tokens`` - Dropbox API的OAuth令牌与
存储在Flask会话中的请求令牌不相等。
* ``error_response`` - Dropbox API返回``ErrorResponse``实例。同时
实际异常作为``error``变量也会发送到模板。
DROPBOX_LOGIN_REDIRECT
----------------------
用户成功使用Dropbox账户登录后重定向到的页面。默认为:``/``。
。
DROPBOX_LOGOUT_REDIRECT
-----------------------
用户从认证的Dropbox会话注销后重定向到的页面。
默认为:``/``。
DROPBOX_CACHE_STORAGE
---------------------
.. 新增版本:0.3
放置账户信息、Dropbox客户端和Dropbox会话实例的位置。在
0.2及以下版本中,所有这些信息都存储在``flask_dropbox.Dropbox``实例中,该实例
不是线程安全的,但从0.3版本开始,所有这些值都存储到``flask.g``中。如果您
需要自定义存储,可以使用导入的对象或字符串覆盖此设置。
。
用法
=====
``app.py``:
from flask import Flask
from flask.ext.dropbox import Dropbox, DropboxBlueprint
import settings
app = Flask(__name__)
app.config.from_object(settings)
dropbox = Dropbox(app)
dropbox.register_blueprint(url_prefix='/dropbox')
``settings.py``:
SECRET_KEY = 'some-secret-key'
DROPBOX_KEY = 'dropbox-app-key'
DROPBOX_SECRET = 'dropbox-app-secret'
DROPBOX_ACCESS_TYPE = 'app_folder'
``views.py``:
from flask import url_for, redirect, request
from werkzeug import secure_filename
from app import app, dropbox
@app.route('/')
def home()
return u'点击 <a href="%s">此处</a> 使用Dropbox登录。' % \
dropbox.login_url
@app.route('/success/<path:filename>')
def success(filename)
return u'文件已成功上传为 /%s' % filename
@app.route('/upload', methods=('GET', 'POST'))
def upload()
if not dropbox.is_authenticated
return redirect(url_for('home'))
if request.method == 'POST'
file_obj = request.files['file']
if file_obj
client = dropbox.client
filename = secure_filename(file.filename)
# 实际上传过程
result = client.put_file('/' + filename, file_obj.read())
path = result['path'].lstrip('/')
return redirect(url_for('success', filename=path))
return u'<form action="" method="post">' \
u'<input name="file" type="file">' \
u'<input type="submit" value="上传">' \
u'</form>'
错误、功能请求?
=======================
如果您在``Flask-Dropbox``库中发现了某些错误,请向项目的`GitHub issues
添加新问题
<https://github.com/playpauseandstop/Flask-Dropbox/issues>`_。
变更日志
=========
0.3
---
+ 支持Flask 0.10
+ 将账户信息、Dropbox客户端和会话存储在线程安全的``flask.g``
存储中,而不是``flask_dropbox.Dropbox``实例
+ 引入``DROPBOX_CACHE_STORAGE``设置
0.2
---
+ 向``Dropbox``扩展类添加``init_app``方法。
+ 不要在初始化``DropboxBlueprint``类时发送``dropbox``实例。
class。
+ 在视图中使用``current_app.extensions['dropbox']``语句获取
已初始化的``Dropbox``实例。
0.1.5
-----
+ 添加``register_blueprint``快捷方式,以一行代码初始化
带有默认值的``DropboxBlueprint``。
+ 将``Dropbox``类从``flask.ext.dropbox.utils``移动到
``flask.ext.dropbox.extension``模块。但主要的是,如果您使用
了``from flask.ext.dropbox import Dropbox``语句,它不会影响您的代码。
0.1.4
-----
+ 在``setup.py``中将``dropbox``库作为安装需求。
+ 更新项目简短描述。
0.1.3
-----
+ 修复通过setup.py安装时的模板处理
0.1.2
-----
+ 添加对Dropbox SDK 1.4.1的支持
0.1.1
-----
+ 检查访问令牌是否是``oauth.OAuthToken``类的实例
存在于会话中。
0.1
---
* 初次发布。
项目详情
关闭
Flask-Dropbox-0.3.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4cc3538459e8d0284ee35526178d7afaf2bba859dce7b52fe3a200e3a11c2f9d |
|
MD5 | 1033c2302cb5c49e74bef6d248cc925d |
|
BLAKE2b-256 | 9768b00b0de974290e03827e8b984513199c9c4887906b5b16e90f7990c24f01 |