day89 介面及無限極分類

2022-07-20 05:06:11 字數 4865 閱讀 7426

comment\func

data = [,,

,,,,

]def get_tree(data):

lists =

tree = {}

for i in data:

tree[i["cat_id"]] = i

for item in data:

if not item["parent_id"]:

else:

if "children" not in tree[item["parent_id"]]:

tree[item["parent_id"]]["children"] =

return lists

res =

def get_son(data, level=0, parent_id=0, is_clear=true):

if is_clear:

res.clear()

#假設傳來的分類為1 ,現在找索引分類id為1 的子孫,但是如果不加下面這一行**,就會遺漏自己本身

if parent_id:

for item in data:

if item['parent_id'] == parent_id:

item['level'] = level

get_son(data, level=level + 1, parent_id=item['cat_id'], is_clear=false)

return res

res1=

def get_all_son(data,parent_id,is_clear=true):

#如果第一次進來就清空

if is_clear:

res1.clear()

for item in data:

if item["parent_id"]==parent_id:

get_all_son(data,parent_id=item["cat_id"],is_clear=false)

return res1

# 上海

# -青浦

# -浦東

# --張江

# 北京

# -昌平

user
from rest_framework.views import apiview

from rest_framework.response import response

import time, hashlib

from django.core.cache import cache

class login(apiview):

def post(self, request):

param = request.data

if param.get("code"):

data = wxlogin.get_openid(param.get("code"))

if data:

val = data["openid"] + "&" + data["session_key"]

key = str(int(time.time())) + data["session_key"]

md5 = hashlib.md5()

md5.update(key.encode("utf-8"))

key = md5.hexdigest()

cache.set(key, val)

has_user = models.wxuser.objects.filter(openid=data["openid"]).first()

if not has_user:

models.wxuser.objects.create(openid=data["openid"])

return response(})

else:

return response()

else:

return response()

banner
from rest_framework.views import apiview

from rest_framework.response import response

class list(apiview):

def post(self, request):

data = models.banner.objects.filter(is_show=true).order_by("-w_order")

data = banner_ser.banner_ser(instance=data, many=true, context=).data

print("list",data)

return response()

goods
from rest_framework.views import apiview

from rest_framework.response import response

class hotlist(apiview):

def post(self, request):

data = models.product.objects.filter(disabled=true).order_by("-buy_count", "-w_order")

data = goods_ser.good_ser(instance=data, many=true, context=).data

print("hotgoods/list", data)

return response()

class list(apiview):

def post(self, request):

param = request.data

if param.get("category_id"):

data = models.category.objects.filter(is_show=true)

data = category_ser.category_ser(instance=data, many=true, context=).data

all_id = func.get_all_son(data, param.get("category_id"))

# 查出分類屬於all_id的所有值

data = models.product.objects.filter(disabled=true, product_id__in=all_id).order_by("-w_order")

data = goods_ser.good_ser(instance=data, many=true, context=).data

print("goods/list",data)

return response()

else:

return response()

category
from rest_framework.views import apiview

from rest_framework.response import response

class list(apiview):

def post(self,request):

data=models.category.objects.filter(is_show=true)

data=category_ser.category_ser(instance=data,many=true,context=).data

print("category/list",data)

return response()

banner_ser
from rest_framework import serializers

class banner_ser(serializers.modelserializer):

product_id=serializers.integerfield(source="product.product_id")

image_url=serializers.imagefield(source="image.image_url")

class meta:

model = models.banner

fields = "__all__"

category_ser
from rest_framework import serializers

class category_ser(serializers.modelserializer):

product_id = serializers.integerfield(source="product.product_id")

parent_id = serializers.serializermethodfield()

def get_parent_id(self, obj):

if obj.parent_id is none:

return 0

else:

return obj.parent_id

class meta:

model = models.category

fields = "__all__"

goods_ser
from rest_framework import serializers

class good_ser(serializers.modelserializer):

image_url = serializers.imagefield(source="image.image_url")

class meta:

model = models.product

fields = "__all__"

day10 介面習題

第一題 分析以下需求,並用 實現 進行描述筆記本類,實現筆記本使用usb滑鼠 usb鍵盤 1.定義usb介面 開啟功能 關閉功能 2.定義筆記本類 開機功能 關機功能 定義使用usb裝置的功能 要求 既能使用滑鼠也能使用鍵盤,使用usb功能內部呼叫開啟和關閉功能 3.定義滑鼠類 要符合usb介面 4...

day03 介面 多型

介面可以定義一定的規則,利用這些規定給類進行功能擴充套件。定義介面 public inte ce 介面名1 定義介面 public inte ce 介面名2 實現介面 public class 類名 implements 介面名1 介面名2 override public void 方法名2 成員變...

DAY8 介面通訊

day8 介面通訊 注意 延展中寫的東西只能在類內使用 pragma mark 屬性傳值 第乙個頁面往第二個頁面傳值 一 屬性傳值 第乙個頁面往第二個頁面傳值 屬性傳值 可以自定義屬性 也可使用控制項 檢視的自帶屬性 1 屬性傳值用於第乙個介面向第二個頁面傳值 2 明確兩者聯絡的橋梁,也就是觸發跳轉...