flask项目 之二

 今日内容:

        1.登录注册页面
      2.用户详情页面
      3.玩具管理页面
           4.扫码页面
      5.绑定页面
      6.绑定逻辑

当我们点击设置按钮时,要实现登录状态:

 

然后写后端:

 

如果没有登录的话就点击注册页面:

然后写后端:

如果在登录的时候设置了localstorege,那么在index.html页面中点击设置的时候就可以先进行判断:

 

登陆成功后进入user_info.html页面:

然后写后端

用户详情页面也有退出登录的按钮:

点击管理我的玩具进入:

toy_manager.html:

然后写后端:

 

 

进入玩具管理页面后,没有玩具就要扫码绑定玩具:

后端创建二维码:

import requests
from uuid import uuid4
import time,os
import hashlib
from settings import MONGO_DB,QR_URL,QRCODE_PATH

rq_text_list = []

for i in range(2):
    qr_text = hashlib.md5("{0}{1}{0}".format(uuid4(),time.time()).encode("utf8")).hexdigest()
    res = requests.get(QR_URL % (qr_text))

    qr_path = os.path.join(QRCODE_PATH,qr_text)
    with open("{}.jpg".format(qr_path),"wb") as f:
        f.write(res.content)

    device_dict = {"device_key":qr_text}
    rq_text_list.append(device_dict)



MONGO_DB.devices.insert_many(rq_text_list)

绑定二维码,进入绑定二维码页面:

QR_code.html:

 

然后写后端:

扫码成功后,就进入玩具绑定页面:

bind_toy.html:

点击页面的绑定按钮:

 

 然后写后端:

@dev.route("/bind_toy", methods=["POST"])
def bind_toy():
    """
    已绑定玩具开启添加好友逻辑
    :return:
    """
    user_list = []
    device_key = request.form.get("device_key")
    user_id = request.form.get("user_id")
    toy_name = request.form.get("toy_name")
    baby_name = request.form.get("baby_name")
    remark = request.form.get("remark")
    gender = request.form.get("gender")

    # 1.创建玩具的基本信息
    chat_id = MONGO_DB.chat.insert_one({})  # 创建一个空的chat

    user_info = MONGO_DB.users.find_one({"_id": ObjectId(user_id)})  # 查询用户基本信息
    user_list.append(str(user_info.get("_id")))

    # 2.绑定用户与玩具关系
    toy_info = {
        "device_key": device_key,
        "bind_user": user_id,
        "toy_name": toy_name,
        "avatar": "toy.jpg",
        "baby_name": baby_name,
        "gender": gender,
        "friend_list": []
    }
    # 3.成为玩具的第一个好友
    frist_friend = {
        "friend_nickname": user_info.get("nickname"),  #
        "friend_avatar": user_info.get("avatar"),
        "friend_remark": remark,
        "friend_chat": str(chat_id.inserted_id)
    }

    toy_info["friend_list"].append(frist_friend)

    toy_id = MONGO_DB.toys.insert_one(toy_info)

    user_list.append(toy_id.inserted_id)

    MONGO_DB.chat.update_one(
        {"_id": chat_id.inserted_id},
        {"$set":{"user_list": user_list, "chat_list": []}}
    )

    user_info["bind_toys"].append(str(toy_id.inserted_id))
    user_info["friend_list"].append(
        {
            "friend_nickname": toy_info.get("baby_name"),
            "friend_avatar": toy_info.get("avatar"),
            "friend_remark": toy_info.get("baby_name"),
            "friend_chat": str(chat_id.inserted_id)
        }
    )

    MONGO_DB.users.update_one({"_id": ObjectId(user_id)}, {"$set": user_info})

    RET["code"] = 0
    RET["msg"] = "绑定成功"
    RET["data"] = {}

    return jsonify(RET)

开发者笔记:
        1.制作注册登录页面
            单选框的使用 getElementsByName = []  
            window.localStorage.setItem("user","value") getItem("Key") remove("Key")
            
        2.用户详情页面:
            class = mui-action-back 单击之后执行返回函数 mui.back()
            <i class="icon"></i>
        
        3.玩具管理页面:
            
        4.扫码页面:
            # 笔记本儿的电脑摄像头不支持扫码
            scan = new plus.barcode.Barcode("扫码控件所存放的标签ID")创建扫码控件
            scan.onmarked = function(type,result){#type就是条码类型 result就是扫码结果}
            scan.start() #开始扫码
            scan.stop() #停止扫码没有用
            
        5.绑定页面:
            
        6.详见截图:
            基于通讯录的IM

posted @ 2018-10-22 19:03  黑猫不是警长  阅读(184)  评论(0编辑  收藏  举报