# 6、儲存和載入圖表
# 儲存和載入圖表
- - - - - -
圖表庫支持使用2個級別的API,用以保存/加載圖表和指標模板:
1. **低級**:保存/加載功能由`save()` / `load()` [方法](Widget-Methods.html#savecallback)和`createStudyTemplate()` / `applyStudyTemplate()`[方法](Chart-Methods.html#createstudytemplateoptions)提供實現。 應該考慮服務器上的存儲數據。 您可以將JSON保存在您希望的位置。 例如,您可以將它們嵌入到已保存的頁面或用
2. **高級**:圖表庫能夠從您指向的存儲中保存/加載圖表和指標模板。 我們使用Python和PostgreSQL創建了一個小型存儲示例,可以在 [我們的GitHub](https://github.com/tradingview/saveload_backend)中找到。 您可以使用它并在自己的服務器上運行,這樣您就可以控制所有用戶的已保存數據。
# 使用高級別保存/加載
下面是想擁有自己圖表存儲功能所需的步驟:
1. 克隆我們的資源到您的主機上
2. 運行數據服務或使用我們的演示服務。對于不熟悉Django的人來說,這是一個簡短的待辦事項列表。
1. Install Python 3.x and Pip.
2. Install PostgreSQL or some other Django-friendly database engine.
3. 轉到圖表存儲文件夾并運行 `pip install -r requirements.txt`
4. 轉到charting\_library\_charts文件夾,并在settings.py中設置數據庫連接(參見 `DATABASES` @ line #12) 。請記住在PostgreSQL中創建適當的數據庫。
5. 運行 `python manage.py migrate` 。 這將創建沒有任何數據的數據庫schema。
6. 運行 `python manage.py runserver` 運行您的數據庫的TEST實例。 不要在生產環境中使用上面的命令。 使用一些其他的東西(例如Gunicorn)
3. 設置您的圖表庫頁面: 設置 `charts_storage_url = url-of-your-charts-storage`, 并在widget的.ctor中設置`client_id`和`user_id`(見下文)。
4. 請享用 !
**備注**:手動填充/編輯數據庫并不是理想做飯。 請避免這個,因為你可能會傷害Django。
## 開發自己的后端
*圖表庫將HTTP/HTTPS命令發送到`charts_storage_url / charts_storage_api_version / charts?client = client_id&user = user_id`。 `charts_storage_url`,`chart_storage_api_version`,`client_id`和`user_id`是[widget構造函數](Widget-Constructor.html)的參數。* 您應該執行4個請求的處理:保存圖表/加載圖表/刪除圖表/列出圖表。
#### 列出圖表
GET REQUEST: `charts_storage_url/charts_storage_api_version/charts?client=client_id&user=user_id`
響應:JSON對象
1. `status`: `ok` 或 `error`
2. `data`: 對象數組
1. `timestamp`: 保存圖表時的UNIX時間(例如,1449084321)
2. `symbol`: 圖表的商品(例如,`AA`)
3. `resolution`: 周期(例如,`D`)
4. `id`: 圖表的唯一整數標識符(例如,`9163`)
5. `name`: 圖表名稱(例如,`Test`)
#### 存儲圖表
POST REQUEST: `charts_storage_url/charts_storage_api_version/charts?client=client_id&user=user_id`
1. `name`: 圖表名稱
2. `content`: 圖表內容
3. `symbol`: 圖表商品(例如, `AA`)
4. `resolution`: 圖表周期 (例如, `D`)
響應:JSON對象
1. `status`: `ok` 或 `error`
2. `id`: 圖表的唯一整數標識符(例如,`9163`)
#### 存儲為圖表
POST REQUEST: `charts_storage_url/charts_storage_api_version/charts?client=client_id&user=user_id&chart=chart_id`
1. `name`: 圖表名稱
2. `content`: 圖表內容
3. `symbol`: 圖表商品(例如, `AA`)
4. `resolution`: 圖表周期 (例如, `D`)
響應:JSON對象
1. `status`: `ok` 或 `error`
#### 加載圖表
GET REQUEST: `charts_storage_url/charts_storage_api_version/charts?client=client_id&user=user_id&chart=chart_id`
響應:JSON對象
1. `status`: `ok` 或 `error`
2. `data`: 對象數組
1. `timestamp`: 保存圖表時的UNIX時間(例如,1449084321)
2. `symbol`: 圖表的商品(例如,`AA`)
3. `resolution`: 周期(例如,`D`)
4. `id`: 圖表的唯一整數標識符(例如,`9163`)
5. `name`: 圖表名稱(例如,`Test`)
#### 刪除圖表
DELETE REQUEST: `charts_storage_url/charts_storage_api_version/charts?client=client_id&user=user_id&chart=chart_id`
響應:JSON對象
1. `status`: `ok` 或 `error`
# 使用演示圖表和指標模板存儲
我們正在運行演示圖存儲服務,以便在構建圖表庫時立即保存/加載圖表。 這是鏈接<http://saveload.tradingview.com>。 請注意,它是按原樣提供的,因為它是一個演示。
我們不保證其穩定性。 另請注意,我們會定期刪除存儲中的數據。
# 管理對已保存圖表的訪問
您負責用戶能夠查看和加載的圖表。 用戶可以查看/加載和用戶相同的`client_id`和`user_id`的圖表。 `client_id`是用戶組的標識符。 預期用途是當您有幾組用戶或有少數幾個使用相同圖表存儲的網站時。 所以通常的做法是設置`client_id = your-site's-URL`。 這由你來決定。
`user_id`是用戶的唯一標識符。 用戶ID屬于特定的`client_id`組。 您可以單獨為每個用戶設置它(每個用戶的私有存儲),也可以為所有用戶或用戶組(公共存儲)設置它。
這里有一些例子:
client\_iduser\_id作用您的站點URL或其他鏈接唯一用戶ID每個用戶都有一個其他用戶看不到的私有圖表存儲。您的站點URL或其他鏈接所有用戶都為相同值每個用戶都可以查看和加載任何已保存的圖表。您的站點URL或其他鏈接注冊用戶的唯一用戶ID以及匿名用戶的單獨設置每個注冊用戶都有一個其他用戶看不到的私有圖表存儲。 所有匿名用戶共享一個存儲。
- 序言
- 更新日志
- 1、Charting Library是什么
- 2-1、圖表庫內容
- 2-2、運行圖表庫
- 3-1、如何連接我的數據
- 3-2、JS Api
- 3-3、UDF
- 3-4、Symbology
- 3-5、交易時段
- 3-6、報價
- 4-1、定制概述
- 4-2、Widget構造器
- 4-3、Widget方法
- 4-4、圖表方法
- 4-5、功能集
- 4-7、定制的使用案例
- 5-1、交易終端簡介
- 5-2、交易控制器
- 5-3、經紀商API
- 5-4、交易主機
- 5-5、賬戶管理器
- 5-6、交易對象和常量
- 6、儲存和載入圖表
- 7、創建自定義指標
- 7、最佳做法
- 9、經常被問到的問題
- 10、版本變更點
- 周期
- 時間范圍
- 本地化
- 覆蓋
- 繪圖覆蓋
- 指標覆蓋
- 形狀與覆蓋
- 訂閱
- 交易元語
- 在K線上做標記
- 委托
- WatchedValue
- 指標API
- 形狀API
- 容器API
- 價格坐標Api