All Projects → leancloud → flask-todo-demo

leancloud / flask-todo-demo

Licence: MIT License
Python port of LeanTodo.

Programming Languages

HTML
75241 projects
python
139335 projects - #7 most used programming language
javascript
184084 projects - #8 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to flask-todo-demo

Python Sdk
LeanCloud Python SDK
Stars: ✭ 99 (+209.38%)
Mutual labels:  leancloud
Lvyou
🎒Vue.js 初步进阶案例,路由懒加载,进入页面前登录判断,返回导航判断,RestAPI接口使用,组件封装,Vuex状态封装,keep-alive页面缓存等功能
Stars: ✭ 195 (+509.38%)
Mutual labels:  leancloud
php-sdk
LeanCloud PHP SDK
Stars: ✭ 54 (+68.75%)
Mutual labels:  leancloud
Weex Android Joke
A joke android app,powered by alibaba's weex.
Stars: ✭ 112 (+250%)
Mutual labels:  leancloud
Artitalk
通过leancloud实现的可实时发布说说的js
Stars: ✭ 189 (+490.63%)
Mutual labels:  leancloud
hexo-leancloud-counter-security
A plugin to fix a serious security bug in leancloud visitor counter for NexT.
Stars: ✭ 31 (-3.12%)
Mutual labels:  leancloud
Ohmo Vue
这是一个完全由 Vue 全家桶来实现的轻博客应用,应用了Vuex对所有状态数据进行管理并优化整体结构,后端应用Node.js开发的全栈应用,由LeanCloud提供数据存储服务。
Stars: ✭ 90 (+181.25%)
Mutual labels:  leancloud
loveWall
微信小程序-表白墙
Stars: ✭ 73 (+128.13%)
Mutual labels:  leancloud
Js Realtime Sdk
LeanCloud Realtime Message JavaScript SDK
Stars: ✭ 193 (+503.13%)
Mutual labels:  leancloud
waline
💬 A Simple, Safe Comment System
Stars: ✭ 1,145 (+3478.13%)
Mutual labels:  leancloud
Node Js Getting Started
LeanEngine Node.js getting started.
Stars: ✭ 123 (+284.38%)
Mutual labels:  leancloud
Weapp Mark
🔥 豆瓣类影视查询记录小程序,附学习笔记
Stars: ✭ 187 (+484.38%)
Mutual labels:  leancloud
lean-moments
使用 Vue.js 和 LeanCloud 构建微信朋友圈。
Stars: ✭ 14 (-56.25%)
Mutual labels:  leancloud
Swift Sdk
LeanCloud Swift SDK
Stars: ✭ 110 (+243.75%)
Mutual labels:  leancloud
weapp-poem
诗词墨客 - 最全中华古诗词小程序
Stars: ✭ 409 (+1178.13%)
Mutual labels:  leancloud
Chinese Copywriting Guidelines
Chinese copywriting guidelines for better written communication/中文文案排版指北
Stars: ✭ 10,648 (+33175%)
Mutual labels:  leancloud
To Do
一个无后端待办事项应用,数据用 LeanCloud 进行同步。
Stars: ✭ 238 (+643.75%)
Mutual labels:  leancloud
react-visualized-platform
🐞 基于 React 的雾霾数据爬虫分析平台
Stars: ✭ 31 (-3.12%)
Mutual labels:  leancloud
daily-check-in
一个打卡小程序 - 基于 leancloud 数据存储
Stars: ✭ 38 (+18.75%)
Mutual labels:  leancloud
LeanCloud-Vue-Boilerplate
A boilerplate project to start LeanCloud/Vue.js production, for real.
Stars: ✭ 16 (-50%)
Mutual labels:  leancloud

Flask Todo Demo

环境与依赖

Flask Todo Demo 是一个 LeanEngine 的示例项目。它运行在 Python 3 上,依赖 flaskLeanCloud Python SDK。你可以在 这里 查看在线 demo。

在开始之前

Flask Todo Demo 是一个 LeanCloud 应用。在部署上线之前,需要先做一些准备工作。

  1. LeanCloud 控制台 新建一个应用,并设置一个二级域名。
  2. 在控制台中新增一个名为 SECRET_KEY 的环境变量。(关于如何创建一个好的密钥,请参考 这个 gist
  3. 安装最新版的 LeanCloud 命令行工具。如果你无法访问 GitHub,请移步 国内镜像

部署方法

首先将 Flask Todo Demo 的代码克隆到本地。在终端中打开项目所在目录,输入 lean login,然后 lean switch,根据提示操作,就可以将本地的项目与刚刚在 LeanCloud 上创建的应用链接起来。

使用 virtualenv 来为这个应用创建一个隔离的 Python 运行环境。激活虚拟环境,然后用 pip 来安装所需的依赖。

lean deploy 命令将代码部署到 LeanCloud 上。部署完成之后,就可以在浏览器中输入刚才设置的域名,打开线上运行的网站了。

简单来讲:

$ git clone https://github.com/leancloud/flask-todo-demo.git && cd flask-todo-demo
$ virtualenv venv --python=python3 && source venv/bin/activate
$ (venv) pip install -r requirements.txt
$ (venv) lean login
$ (venv) lean switch
$ (venv) lean deploy

如何调试?

在本地调试,请使用 lean up 命令,然后在 http://localhost:3000 查看本地运行实例。如果你使用了虚拟环境,请先激活对应的虚拟环境。

高级技巧

Hook 函数

cloud.py 中有一个 before_todo_save 函数,它的上一行是 @engine.before_save('Todo'),说明这是一个 Hook 函数。当一个新的 Todo 将要被保存到数据之前,LeanCloud 会自动调用这个函数,你可以利用它来检查数据的有效性。

在现在这个函数里,当一个 todo 的 content 超过 240 个字,我们就会将其截断,并在最后加上「...」。这显然不是最好的办法;如果你有兴趣,可以尝试 fork 代码之后自己修改成更好的处理方法。

除了在对象保存之前进行预处理,你还可以调用很多其他 Hook。想要了解更多,可以参考 Hook 函数文档

定时任务

cloud.py 中的另一个函数是 empty_trash,它会筛选出 status-1 且最后一次更新时间是 30 天之前的 todo 并删除。

这是一个云函数,你可以在项目中通过 leancloud.cloudfunc.run('empty_trash') 来手动调用它,但显然自动化是更好的方案。

为了实现自动化,我们可以在 LeanCloud 控制台设置一个定时任务,让这个函数每天凌晨都自动运行一次。

将代码部署到云引擎之后,你就可以前往 LeanCloud 控制台,在云引擎 > 定时任务中创建一个定时器。定时器的运行规则用 cron 表达式来定义,这里我们希望它每天凌晨 12 点运行一次,那么 cron 表达式就应当写作 0 0 0 * * ?

定时任务可以帮你自动做很多事情,想要了解更多,可以参考 定时任务文档

其他语言的 Demo

请参考 LeanCloud 开源 Demo

Miscellaneous

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].