
# Python示例
#### 操作场景
DDS支持通过Python语言接口来操作数据，通过Python连接实例的方式有开启SSL认证连接和关闭SSL认证连接两种，其中开启SSL证书连接加密功能，具有更高的安全性。
DDS新实例默认关闭SSL数据加密，开启SSL请参考[开启SSL](https://support.huaweicloud.com/usermanual-dds/dds_03_0074.html#section1)。
本章节主要介绍使用Python语言连接副本集实例的方法。
#### 前提条件
1. 连接数据库的弹性云服务器必须和DDS实例之间网络互通，可以使用curl命令连接DDS实例服务端的IP和端口号，测试网络连通性。 **curl** *ip:port*
   返回"It looks like you are trying to access MongoDB over HTTP on the native driver port."，说明网络互通。
   
2. 在弹性云服务器上安装Python以及第三方安装包[pymongo](https://pypi.python.org/pypi/pymongo/2.7#downloads)。推荐使用pymongo2.8版本。
3. 如果开启SSL，需要在界面上下载根证书，并上传到弹性云服务器。
 
#### 开启和关闭SSL安全连接
- [SSL开启]
  ```
  import ssl
  from pymongo import MongoClient
  conn_urls="mongodb://rwuser:rwuserpassword@ip:port/{mydb}?authSource=admin&replicaSet=replica"
  connection = MongoClient(conn_urls,connectTimeoutMS=5000,ssl=True, ssl_cert_reqs=ssl.CERT_REQUIRED,ssl_match_hostname=False,ssl_ca_certs=${path to certificate authority file})
  dbs = connection.database_names()
  print "connect database success! database names is %s" % dbs
  ```
- [SSL关闭]
  ```
  import ssl
  from pymongo import MongoClient
  conn_urls="mongodb://rwuser:rwuserpassword@ip:port/{mydb}?authSource=admin&replicaSet=replica"
  connection = MongoClient(conn_urls,connectTimeoutMS=5000)
  dbs = connection.database_names()
  print "connect database success! database names is %s" % dbs
  ```
#### 相关文档
[设置SSL数据加密](https://support.huaweicloud.com/usermanual-dds/dds_03_0074.html)
[通过程序代码连接副本集实例](https://support.huaweicloud.com/usermanual-dds/dds_03_0339.html)
