跳转到主要内容

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-0.3.tar.gz (8.2 kB 查看哈希值)

上传时间

由以下支持