دستاویزاتپہلے اقدامات
Nexy کیا ہے؟
Nexy فل اسٹیک ویب ایپلیکیشنز کے لیے ایک Python فریم ورک ہے: آپ کے صفحات اور آپ کا API ایک پروجیکٹ میں رہتے ہیں اور ایک سرور کے ذریعے پیش کیا جاتا ہے۔
جو آپ کو ملتا ہے۔
- میں صفحات Python ایک
.nexyفائل HTML ہے جس کے اوپر Python کی چند لائنیں ہیں۔ ایک.mdفائل بھی ایک صفحہ ہے۔ صفحہ کو رینڈر کرنے کے لیے کسی JavaScript کی ضرورت نہیں ہے۔
- اسی میں ایک API پروجیکٹ
src/routes/کے تحت ایک.pyفائل HTTP درخواستوں کا جواب دیتی ہے:GETنامی فنکشن جواب دیتا ہےGET،POSTنامی فنکشنPOSTکا جواب دیتا ہے۔
- اسی میں ایک API پروجیکٹ ایک کنٹرولر HTTP درخواستوں کا جواب دیتا ہے: اس کا طریقہ
getجواباتGET، اس کا طریقہpostجواباتPOST، اور ایک ماڈیول گروپ کنٹرولرز اور ان کی خدمات۔
- اسی میں ایک API پروجیکٹ آپ کے پاس پہلے سے موجود FastAPI راؤٹر جواب دیتا رہتا ہے، اور
src/routes/کے جوابات کے صفحات اور روٹ فائلیں اس کے ساتھ ہیں۔
- API دستاویزات برائے مفت ہر API روٹ ایک OpenAPI اسکیما میں ظاہر ہوتا ہے، اور اسکیلر اسے
/docsپر ایک انٹرایکٹو حوالہ کے طور پر دکھاتا ہے۔ - فارم جو کال کرتے ہیں۔ Python. ایک فارم، یا براؤزر سے ٹائپ شدہ کال، اسی Python فنکشن تک پہنچتی ہے۔
- جب آپ چاہیں فرنٹ اینڈ فریم ورک ایک React، Vue، Svelte، Solid یا Preact، ایک جزو یا پوری سائٹ کے لیے۔
- کام کرنے کا ایک حکم، ایک کو جہاز
nx devجب آپ بچاتے ہیں تو دوبارہ لوڈ ہوتا ہے۔nx buildپیداوار تیار کرتا ہے۔
جس پر بنایا گیا ہے۔
موجودہ ورژن، 2.2، ان ٹولز پر کھڑا ہے جو آپ کو پہلے سے معلوم ہو سکتا ہے:
| حصہ | پر بنایا گیا۔ | آپ کے لیے اس کا کیا مطلب ہے۔ |
|---|---|---|
| سرور اور API | FastAPI | API روٹ ایک FastAPI راستہ ہے: Pydantic توثیق اور انحصار معمول کے مطابق کام کرتے ہیں |
| API حوالہ | OpenAPI اور Scalar | اسکیما /openapi.json پر ہے، حوالہ /docs پر ہے |
| صفحات | Jinja2 | ایک .nexy صفحہ Jinja2 ٹیگ استعمال کرتا ہے جیسے {{ title }} |
| فرنٹ اینڈ (اختیاری) | Vite | صرف ایک فرنٹ اینڈ فریم ورک کے ساتھ، جس کی بھی ضرورت ہے Node.js |
پہلا صفحہ اور پہلا اختتامی نقطہ
ایک صفحہ، /hello پر:
title: prop[str] = "Hello"<h1>{{ title }}</h1>ایک اختتامی نقطہ، GET /api/items پر، بغیر کسی اضافی کوڈ کے /docs پر درج ہے:
from nexy.http import Request async def GET(request: Request): return {"items": []}ایک منظر، اور کنٹرولرز جو جواب دیتے ہیں /hello/ اور GET /api/items/۔ اختتامی نقطہ بغیر کسی اضافی کوڈ کے /docs پر درج ہے، اور یو آر ایل اس کی آخری سلیش کے بغیر اس کی طرف ری ڈائریکٹ کرتا ہے:
title: prop[str] = "Hello"<h1>{{ title }}</h1>from nexy.decorators import Controllerfrom nexy.hooks import useViews @Controller("/hello")class HelloController: async def get(self): return useViews("src/apps/hello_view.nexy", context={"title": "Hello"}) @Controller("/api/items")class ItemsController: async def get(self): return {"items": []}روٹ ماڈیول ان کی فہرست دیتا ہے، اور useRouter = AppModule nexyconfig.py میں اسے ماؤنٹ کرتا ہے:
from nexy.decorators import Module from .hello_controller import HelloController, ItemsController @Module()class AppModule: controllers = [HelloController, ItemsController]Nexy آپ کے لیے کیا چھوڑتا ہے۔
ڈیٹابیس، لاگ ان اور اس بارے میں قواعد جو آپ کی درخواست سے تعلق رکھتے ہیں کون کر سکتا ہے، لہذا آپ لائبریریوں کا انتخاب کرتے ہیں۔ ڈیٹا بیس اور مڈل ویئر اور سیکیورٹی دکھاتے ہیں کہ ہر ایک کہاں پلگ ان ہوتا ہے۔
اگلے اقدامات
- انسٹالیشن: انسٹال کریں uv اور ایک پروجیکٹ بنائیں
- فوری آغاز: اسے چلائیں، صفحہ تبدیل کریں، اسے بنائیں
- بنیادی تصورات: چند الفاظ جو باقی دستاویزات استعمال کرتے ہیں۔