57个挑战之55-制作一个文件编辑器(5)python 实现-客户端

57个挑战之55-制作一个文件编辑器(5)python 实现-客户端

编写客户端的代码,用于查看数据

from flask import Flask,render_template,request,url_for,redirect
from datetime import date
import requests

def post_url(text):
    print("----come to function---post_url(text)")
    urlback = "http://127.0.0.1:8008/api/storedoc"
    r = requests.post(urlback,json={"text":text})
    info = r.json()["info"]
    print(info)
    print("----come out of the function---post_url(text)")
    return info

def edit_url(url):
    print("----come to function---edit_url(text)")
    urlback = "http://127.0.0.1:8008/api/editdoc"
    r = requests.post(urlback,json={"edit":url})
    info = r.json()["textinfo"]
    print("----come out of the function---edit_url(text)")
    #服务端代码需要修改下,增加一个字段回参的: return jsonify({"info": "the url is exist","url":url ,"textinfo": textinfo})
    return  info


app = Flask(__name__)


"""
1. 保存文档
客户端功能逻辑:接受用户输入,把文字传递到服务端保存,并收集服务端产生的url信息,并展示到客户端。
输入: 在用户主页填入表,并点击保存。
输出: 保存成功,并返回url 在客户端。

1-1. 从前端获取输入;
1-2. 把输入信息提交给后端;
1-3. 后端返回url 给到前端,解析后,展示到display.html 中。

"""

@app.route('/',methods=['GET','POST'])
@app.route('/index')
@app.route('/home')
def index():
    if request.method == 'POST':
       text = request.form['text']
       info = post_url(text)
       return render_template('57-55-display.html',info=info)

    if request.method == 'GET':
       return render_template('57-55-index.html')

"""
2. 打开并编辑保存文档
客户端功能逻辑:用户打开1中对应的链接,打开后即产生一个Post请求到服务端,拿到服务端返回的信息后,重新展现到edit.html中。
逻辑1
输入: 用户点击对应的链接(get请求);
输出: 客户端根据请求做一个redirect 解析到一个新的index2.html中,其中index2里面包含了这个url在服务端的数据;

逻辑2
输入: 用户在index2.html 中做编辑,编辑后点击保存,信息会发送到后端。
输出: 后端能保存这段内容,并产生一个url 信息,
"""
@app.route('/api/url/',methods=['GET'])
def edit(content):
    url = request.url
    print(url)
    print("the content is {0}".format(content))
    info = edit_url(url)
    print("the info is {0}".format(info))
    return render_template('57_55_edit.html', info=info)

@app.route('/api/url/',methods=['POST'])
def save(content2):
    url = request.url
    text = request.form['text']
    info = post_url(text)
    return render_template('57-55-display.html', info=info)


if __name__ == '__main__':
    app.run(host='0.0.0.0',port=80,debug = True)

客户端html:

57-55index.html




    
    57-55index.html



57-55-display.html




    
    57-55-display.html


{{info}}

57-55index.html




    
    57-55index.html



57-55edit.html




    
    57-55edit.html




  1. 1 插入逻辑:
57个挑战之55-制作一个文件编辑器(5)python 实现-客户端

客户端登录界面


57个挑战之55-制作一个文件编辑器(5)python 实现-客户端

前端日志

57个挑战之55-制作一个文件编辑器(5)python 实现-客户端

插入数据信息后,redirect 到对应的链接

57个挑战之55-制作一个文件编辑器(5)python 实现-客户端

前端日志信息

57个挑战之55-制作一个文件编辑器(5)python 实现-客户端

服务端日志信息

1.2 可以看到服务端的信息:

the hash of http://127.0.0.1/api/url/2022-06-16-18:14:08 is 69e3bac89ae14610aa5e ,

1.3 查看后端redis 数据库:

57个挑战之55-制作一个文件编辑器(5)python 实现-客户端


2.1 编辑逻辑:

访问刚才生成的URL 信息 , http://127.0.0.1/api/url/2022-06-16-18:14:08

访问链接后,登录界面:

57个挑战之55-制作一个文件编辑器(5)python 实现-客户端

客户端登录界面

57个挑战之55-制作一个文件编辑器(5)python 实现-客户端

前端日志

57个挑战之55-制作一个文件编辑器(5)python 实现-客户端

返回头相关信息


57个挑战之55-制作一个文件编辑器(5)python 实现-客户端

编辑文档

后台信息:

57个挑战之55-制作一个文件编辑器(5)python 实现-客户端

保存后展示的信息

57个挑战之55-制作一个文件编辑器(5)python 实现-客户端

前端返回的信息

57个挑战之55-制作一个文件编辑器(5)python 实现-客户端

插入逻辑-前端的日志

57个挑战之55-制作一个文件编辑器(5)python 实现-客户端

插入逻辑-后端逻辑

57个挑战之55-制作一个文件编辑器(5)python 实现-客户端

查询后端数据库信息

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章