日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

10

發布時間:2025/3/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 10 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

from bson import ObjectId
from flask import Blueprint, request, jsonify

from setting import MDB, RET

devices_bp = Blueprint("devices_bp", name)

@devices_bp.route("/scan_qr", methods=["POST"])
def scan_qr():
# 掃碼綁定
# 1.掃描成功,沒有綁定 開啟綁定
# 2.掃碼失敗,未授權
# 3.掃碼成功,已經綁定 ?添加好友
device_key = request.form.to_dict()
print(device_key)
device = MDB.Devices.find(device_key)
print(device)
if device:
# 1.掃描成功,沒有綁定 開啟綁定
RET["CODE"] = 0
RET["MSG"] = "識別玩具成功"
RET["DATA"] = device_key

else:# 2.掃碼失敗, 未授權 授權庫沒有此條碼RET["CODE"] = 1RET["MSG"] = "請不要瞎JB亂掃"RET["DATA"] = {}# // 3.蜜汁邏輯 # 二維碼掃描成功, 但設備已經進行綁定 # { # "code": 2, # "msg": "設備已經進行綁定", # "data": # { # "toy_id": toy_id # } # }return jsonify(RET)

@devices_bp.route("/bind_toy", methods=["POST"])
def bind_toy():
toy_info = request.form.to_dict()
user_id = toy_info.pop("user_id")

user_info = MDB.Users.find_one({"_id": ObjectId(user_id)}) # 查詢user_info# 創建一個Chats chat_id = MDB.Chats.insert_one({"user_list": [], "chat_list": []})# 1.創建toy toy_info["avatar"] = "toy.jpg" toy_info["friend_list"] = [] toy_info["bind_user"] = user_id # toy_info[bind_user]? 這個值怎么獲得? # toy_id = MDB.Toys.insert_one(toy_info) 暫時不創建toy # 2.toy有了app的綁定對象, app的綁定toy對象是誰呢? # 在 Users 數據中的 bind_toys 列表 加入 toy 綁定對象的_id字符串 # MDB.Users.update_one({}, {"$push": {"bind_toys": str(toy_id.inserted_id)}}) 暫時不創建 # 3.將toy和app 交換名片 # 建立一個移動端好友關系是為了 即使通訊 IM 基于通訊錄的 # 給玩具增加第一個好友 app toy_add_user = {"friend_id": user_id, # app id"friend_nick": user_info.get("nickname"), # user 昵稱"friend_remark": toy_info.pop("remark"), # remark在哪里呢?"friend_avatar": user_info.get("avatar"), # user有頭像嗎?"friend_chat": str(chat_id.inserted_id),# 私聊窗口ID 聊天數據表對應值 ---- Q寵大樂斗 戰斗記錄# """# {# player_list:["P1","P2"],# Battle_list:[# {# acter:"P1",# defer:"P2",# info:"1232132131232131231",# ctime:2019.7.22# }# ]# }# """# 那么問題來了,這個位置要存儲一個Id ,是Chats數據表中的一條數據的Id# 1.先創建 Chats 數據 可以獲得ObjectId這個Id轉化為字符串可以存儲在 friend_chat# 弊端 - player_list 中缺少 Toy_id 因為Toy還未創建完成# 2.先空著 friend_chat 優先創建 Toy 獲得 Toy_id# 當user_id 遇到 Toy_id 就可以去創建 Chats ,player_list=[user_id,Toy_id]# 再回到 Toys中 修改 friend_id == user_id 這條數據的 friend_chat"friend_type": "app" # 好友的用戶類型 app / toy},toy_info["friend_list"].append(toy_add_user) toy_id = MDB.Toys.insert_one(toy_info)# 一個人無法決定兩人的關系 app 也要同時 增加toy為好友user_add_toy = {"friend_id": str(toy_id.inserted_id), # toy_id str"friend_nick": toy_info.get("baby_name"), # baby_name"friend_remark": toy_info.get("toy_name"), # toy_name"friend_avatar": "toy.jpg", # 阿凡達"friend_chat": str(chat_id.inserted_id), # chat_id"friend_type": "toy" # 好友的類型 toy }user_info["bind_toys"].append(str(toy_id.inserted_id)) user_info["friend_list"].append(user_add_toy)# 修改 Users 的全部數據 MDB.Users.update_one({"_id": ObjectId(user_id)}, {"$set": user_info})# Chats 數據也會變化 user_list player_list 將 toy_id 和 user_id 加入 MDB.Chats.update_one({"_id": chat_id.inserted_id}, {"$set": {"user_list": [user_id, str(toy_id.inserted_id)]}})RET["CODE"] = 0 RET["MSG"] = "綁定完成" RET["DATA"] = {}return jsonify(RET)

@devices_bp.route("/toy_list", methods=["POST"])
def toy_list():
bind_user = request.form.get("_id")
toyl = list(MDB.Toys.find({"bind_user": bind_user}))

for toy in toyl:toy["_id"] = str(toy.get("_id"))RET["CODE"] = 0 RET["MSG"] = "獲取Toy列表" RET["DATA"] = toylreturn jsonify(RET)

@devices_bp.route("/open_toy", methods=["POST"])
def open_toy():
device_key = request.form.to_dict()
# 1.用 device_key 查詢? Devices or Toys
# 先查詢已綁定Toy 可以有效減少數據庫查詢次數(減少IO操作)
toy = MDB.Toys.find_one(device_key)
# 2.設備處于綁定狀態,正常啟動
# 設備未綁定
# 設備未授權 0.5%
if toy: # 開機成功
ret = {
"code": 0,
"music": "Success.mp3",
"toy_id": str(toy.get("_id")),
"name": toy.get("toy_name")
}
else:
if MDB.Devices.find_one(device_key): # 設備未綁定
ret = {
"code": 1,
"music": "Nobind.mp3"
}
else: # 設備未授權
ret = {
"code": 2,
"music": "Nolic.mp3"
}

return jsonify(ret)

import json

from flask import Flask, request, render_template
from geventwebsocket.handler import WebSocketHandler
from geventwebsocket.server import WSGIServer
from geventwebsocket.websocket import WebSocket

ws_app = Flask(name)

user_socket_dict = {}

"789":"as",

"456":"ts"

@ws_app.route("/app/")
def app(user_id): # app 連接位置
print(user_id)
app_socket = request.environ.get("wsgi.websocket") # type:WebSocket
if app_socket:
user_socket_dict[user_id] = app_socket
while True:
app_data = app_socket.receive()
"""
JSON:
{
to_user: 456, // 接收音樂的方ID
music: music_name // 發送的音樂名稱
}
"""
app_data_dict = json.loads(app_data)
to_user = app_data_dict.get("to_user")
print(to_user)
usocket = user_socket_dict.get(to_user)
print(app_socket,usocket)
usocket.send(app_data)

@ws_app.route("/toy/")
def toy(toy_id): # Toy 連接的位置
print(toy_id)
toy_socket = request.environ.get("wsgi.websocket") # type:WebSocket
if toy_socket:
user_socket_dict[toy_id] = toy_socket
while True:
toy_data = toy_socket.receive()
toy_data_dict = json.loads(toy_data)
to_user = toy_data_dict.get("to_user")
usocket = user_socket_dict.get(to_user)
usocket.send(toy_data)

@ws_app.route("/get_toy")
def get_toy():
return render_template("WebToy.html")

if name == 'main':
http_serv = WSGIServer(("0.0.0.0", 9528), ws_app, handler_class=WebSocketHandler)
http_serv.serve_forever()

轉載于:https://www.cnblogs.com/Doner/p/11231141.html

總結

以上是生活随笔為你收集整理的10的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。