flask打造升级版ToDoList

Posted 中学生计算思维与实践

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flask打造升级版ToDoList相关的知识,希望对你有一定的参考价值。

首先推荐一个网站,用于制定计划,标识完成的。

http://todolist.cn/


这个H5站点,数据是存在本地浏览器的,是一个安全、极简的任务计划网站。如果你固定在一台电脑上做计划的话,这就够了。


那么本文也就结束了,感谢观看……






如果是要改成共享式的计划清单,数据仅仅存本地就不行了。


所以,我们我这个网站的源码下下来,做了如下改动:



给它们增加CSS用于对齐:



JS文件中增加几个函数,用于提交数据到服务器:


function get(url){
    xhr = new XMLHttpRequest();
    xhr.open('get', url);
    xhr.setRequestHeader('Content-type''application/json');
    xhr.send();
    xhr.onreadystatechange = function ({
    if (xhr.readyState === 4 && ( xhr.status === 200 || xhr.status === 304 )){
        res=xhr.responseText
        localStorage.setItem("todo",res);
        load()

      }

    }
}

function post(data,url){
    xhr = new XMLHttpRequest();
    xhr.open('post', url);
    xhr.setRequestHeader('Content-type''application/json');
    xhr.send(data);
    xhr.onreadystatechange = function ({
    if (xhr.readyState === 4 && ( xhr.status === 200 || xhr.status === 304 )){
        res=xhr.responseText
        if(res=="OK")
            alert("上传成功!")

      }

    }
}
function upload(){
    var collection=localStorage.getItem("todo");
    if(collection!=null){
        if(JSON.parse(collection)!=""){
            var jdata=JSON.stringify(collection);
            post(jdata,"http://49.234.187.92:5000/sendAjax");
        }
        else{
            alert("无需上传")
        }
    }
    else{
        alert("数据为空")
    }
}
function download(){
    get("http://49.234.187.92:5000/getAjax")
}


在服务器上跑一个flask程序:

from flask import Flask,request,jsonify,render_template
import json
from flask_cors import *

app = Flask(__name__)
CORS(app, supports_credentials=True)
@app.route("/")
def todo():
    return render_template('todo.html')

@app.route('/sendAjax', methods=['POST'])
def sendAjax():
    data = request.get_data()
    d=json.loads(data)
    with open("static/common/record.txt",'w'as f:
        f.write(d)
    return "OK"

@app.route('/getAjax', methods=['GET'])
def getAjax():
    with open("static/common/record.txt",'r'as f:
        rec=f.read()
    return rec

if __name__ == '__main__':
    app.debug = True # 设置调试模式,生产模式的时候要关掉debug
    app.run(host='0.0.0.0',port='5000')

其中flask_cors是防止跨域访问报错的。


于是最终,我们实现了,电脑网页和手机网页的互通。


打开以后,先下载。然后手机端制定、完成计划,手机端不用时点击上传。则电脑端网页就可以下载数据了,电脑端切手机的时候同理。


最后,由于是私人ToDoList,公开api,所以还是加个登录验证比较好。或者干脆,把这个站点封装成一个apk,用安卓打包工具就可以实现。

以上是关于flask打造升级版ToDoList的主要内容,如果未能解决你的问题,请参考以下文章

用爬虫和Flask打造属于自己的电影网站!

将vscode打造成无敌的IDE添加自定义的snippet

将vscode打造成无敌的IDE添加自定义的snippet

Flask 系列之 FlaskForm

用flask快速打造一个技术导航网站,并自动采集导航!附源码

最佳实践从 0 开始,用 flask+mongodb 打造分布式服务器监控平台