К содержимому
Hub
TechnoMarket — texnika do'koni

TechnoMarket — texnika do'koni

Veb2026PythonREST APIJavaScriptМагазинБез зависимостей

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.

Qanday qurilgan

Loyihaning haqiqiy kodidan parcha — ichida nima borligini ko'rish uchun.

Repozitoriy
Python
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(),        }
Bog'lanish

Loyiha uchun ariza

Shaklni to'ldiring — tafsilotlar va muddatlarni muhokama qilamiz.

Loyiha bo'yicha: TechnoMarket — texnika do'koni
Keyingi loyiha

Contacts Book — telefon kitobi