Umumiy buyurtma bazasiga ega texnika do'koni: vitrina, telefon raqami orqali kirish, xodim rollari. Server toza Python'da, kutubxonalarsiz.
Texnika do'koni: katalog, savat, buyurtma rasmiylashtirish, telefon raqami orqali kirish va xaridor bilan xodim uchun turli huquqlar.
Eng qiziq qismi — server tomoni. Birinchi versiya bitta HTML faylda yashagan va hammasini brauzer xotirasida saqlagan: telefonda berilgan buyurtma kompyuterda ko'rinmagan. Server buni tuzatadi.
Python standart kutubxonasida yozilgan: http.server, baza o'rniga JSON fayl, Authorization sarlavhasida tokenlar. Birorta ham tashqi kutubxona yo'q.
Loyihaning haqiqiy kodidan parcha — ichida nima borligini ko'rish uchun.
def api(self, method): parsed = urllib.parse.urlparse(self.path) path = parsed.path db = load_db() body = self._body() if method in ("POST", "PUT", "DELETE") else {} me = user_by_token(db, self._token()) if path == "/api/orders" and method == "GET": if not me: return self._json({"error": "Нужен вход"}, 401) if me["role"] in ("owner", "sadmin", "jadmin"): return self._json(db["orders"]) # персонал видит все заказы return self._json([o for o in db["orders"] if o.get("user") == me["phone"]]) if path == "/api/orders" and method == "POST": if not me: return self._json({"error": "Нужен вход"}, 401) order = { "id": int(time.time()) % 1000000, "user": me["phone"], "items": body.get("items", []), "total": body.get("total", 0), "status": "Новый", "ts": time.time(), }Loyiha uchun ariza
Shaklni to'ldiring — tafsilotlar va muddatlarni muhokama qilamiz.
Contacts Book — telefon kitobi
