flask+mongodb实现简单todolist应用
来源:互联网 发布:java nio与io的区别 编辑:程序博客网 时间:2024/06/06 20:01
学习mongodb的小练习
效果
点击submit,显示如下列表
点击done,unifinished 变为 finished
点击delete删除
结构
todolist/
├── app.py
└── templates
├── base.html
└── index.html
代码
app.py
from flask import Flask, jsonify, request, abort,url_for,render_template,redirectfrom time import timefrom bson.objectid import ObjectIdfrom bson.json_util import dumpsimport pymongoapp = Flask(__name__)mongo = pymongo.MongoClient('127.0.0.1', 27017)db = mongo.todosclass Todo(object): @classmethod def create_doc(cls, content): return { 'content': content, 'created_at': time(), 'is_finished': False, 'finished_at': None }@app.route('/todo/',methods=['GET'])def index(): todos = db.todos.find({}) return render_template('index.html',todos=todos)@app.route('/todo/', methods=['POST'])def add(): content = request.form.get('content', None) if not content: abort(400) db.todos.insert(Todo.create_doc(content)) return redirect('/todo/')@app.route('/todo/<content>/finished')def finish(content): result = db.todos.update_one( {'content':content}, { '$set': { 'is_finished': True, 'finished_at': time() } } ) return redirect('/todo/')@app.route('/todo/<content>')def delete(content): result = db.todos.delete_one( {'content':content} ) return redirect('/todo/')if __name__ == '__main__': app.run(debug=True)
templates/base.html
<!DOCTYPE html><html><head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta content="width=device-width, initial-scale=1.0" name="viewport"/></head><body> {% block content %} {% endblock %}</body></html>
templates/index.html
{% extends 'base.html' %}{% block content %}<form action="{{ url_for('index') }}" method=post class=add-entry> <h2>todo list:</h2> <textarea name=content rows=2 cols=20></textarea> <input type=submit value=submit></form><ul> {% for todo in todos %} <li><p>{{todo.content}} <a href="{{ url_for('delete',content=todo.content)}}">delete</a>  <a href="{{ url_for('finish',content=todo.content)}}">done</a></p> {%- if todo.is_finished -%} <p>finished</p> {%- else-%} <p>unfinished</p> {%- endif %} </li> {% endfor %}</ul>{% endblock %}
阅读全文
0 0
- flask+mongodb实现简单todolist应用
- flask + vue.js 实现简单todolist应用
- Vue实现简单ToDoList
- vue.js实现简单todolist
- Flask-Todolist功能
- Flask+uWSGI+Nginx实现简单文件上传web应用
- 简单实现flask route
- 盲人摸象——IOS简单应用ToDoList(Objective-c)
- python+flask实现简单博客
- React+Redux实现简单的待办事项列表ToDoList
- React+Redux实现简单的待办事项列表ToDoList
- 利用Bootstrap+Vue+Flask 制作一个todolist
- vue-简单的todolist
- MongoDB简单应用
- python flask,file structure ,blueprint简单应用
- 浅谈React实现todolist
- todolist(jQuery实现)
- Flask 用Blueprint实现模块化的应用
- 简单的倒计时按钮
- 分布式机器学习平台大比拼
- Java实现一个简单的Web服务器
- Apache实现文件解压缩
- Android 自定义进度条ColorfulProgressBar,原理简单、效果很棒
- flask+mongodb实现简单todolist应用
- 实现读取文件夹中文件,复制到另外一个文件夹,并且删除原来的文件包括(图片和PDF)
- 初始化字典的6种方式
- C语言入门:冒泡排序(代码实现,而不是排序方法阐述)
- Android 常用sql笔记之视图创建
- HDU5340 Three Palindromes <Manacher>
- Guarding the Chessboard UVA
- dp 之硬币问题
- 【Java】数组和List打印(System.out.println)的区别