Skip to main content

Python SDK 配置指南

info

Python SDK 为服务端 SDK,主要用于在云引擎等受信任的服务器环境中调用管理接口、云函数等。 如果你需要在自己的服务器上使用 Python SDK 调用数据存储、即时通讯、推送等服务,请参考此篇文档完成配置。

获取 SDK

获取 SDK 有多种方式,较为推荐的方式是通过包依赖管理工具下载最新版本。

包依赖管理工具安装

使用 pip 安装:

pip install leancloud

取决于系统环境,可能需要在命令前加 sudo

手动安装

前往 Python SDK 下载页获取 SDK 并安装。

初始化

调用 init 方法进行初始化:

import leancloud

leancloud.init("your-app-id", "your-app-key")
# 或者使用 Master Key
# leancloud.init("your-app-id", master_key="your-master-key")

应用凭证

You can view the credentials of your app by going to Dashboard > Settings > App keys:

  • App ID will be used when you initialize the SDK.
  • App Key will be used when you initialize the SDK on the client side.
  • Master Key will be used when you interact with admin interfaces on trusted environments including your own server and LeanEngine. When you use it, all the permission checks will be skipped. Make sure to keep it private and never use it in the code for the client.

See Domain for setting up the domain.

域名

See Binding Your Domains.

开启调试日志

在应用开发阶段,你可以选择开启 SDK 的调试日志(debug log)来方便追踪问题。调试日志开启后,SDK 会把网络请求、错误消息等信息输出到 IDE 的日志窗口,或是浏览器 Console 或是云引擎日志(如果在云引擎下运行 SDK)。

# 写在启动脚本的头部
# 如果是在云引擎环境,启动脚本是 wsgi.py
import logging

logging.basicConfig(level=logging.DEBUG)

注意,在应用发布之前,请关闭调试日志,以免暴露敏感数据。

验证

首先,确认本地网络环境是可以访问云端服务器的,可以执行以下命令:

curl "https://{{host}}/1.1/date"

{{host}} 为绑定的 API 自定义域名。

如果当前网络正常会返回当前时间:

{ "__type": "Date", "iso": "2020-10-12T06:46:56.000Z" }

然后在项目中编写如下测试代码:

TestObject = leancloud.Object.extend('TestObject')
test_object = TestObject()
test_object.set('words', "Hello world!")
test_object.save()

保存后运行程序。

然后打开 Dashboard > Data Storage > 结构化数据 > TestObject,如果看到数据表中出现一行「words」列的值为「Hello world!」的数据,说明 SDK 已经正确地执行了上述代码,配置完毕。

如果控制台没有发现对应的数据,请参考 问题排查

问题排查

SDK 安装指南基于当前最新版本的 SDK 编写,所以排查问题前,请先检查下安装的 SDK 是不是最新版本。

401 Unauthorized

如果 SDK 抛出 401 异常或者查看本地网络访问日志存在:

{
"code": 401,
"error": "Unauthorized."
}

则可认定为 App ID 或者 App Key 输入有误,或者是不匹配,很多开发者同时注册了多个应用,导致拷贝粘贴的时候,用 A 应用的 App ID 匹配 B 应用的 App Key,这样就会出现服务端鉴权失败的错误。

客户端无法访问网络

客户端尤其是手机端,应用在访问网络的时候需要申请一定的权限。