مدت :

۶ ساعت

قیمت : ۱۵۹,۰۰۰ تومان
LinkedIn
Twitter
Facebook
Telegram

درباره مدرس 

اطلاعات دوره

توضیحات

چرا آموزش Django REST برای تولید API با جنگو در هم رویش تولید و منتشر شد؟

1- زیرا تولید Web API امروزه یکی از بهترین روش‌ها برای راه‌اندازی سریع اپلیکیشن‌‌ برای کسب و کارهای آنلاین است.

2- زیرا جنگو مبتنی بر پایتون است. به دلیل کتابخانه‌های غنی پایتون به ویژه در زمینه هوش مصنوعی و داده کاوی، جنگو بهترین گزینه برای سرورنویسی است.

3- جنگو برای حل چالش‌های گوناگون برنامه‌نویسی راهکارهای ساده و مبتکرانه دارد. این سرعت توسعه را بالا می‌برد.

4- زیرا Django REST (+) بسیاری از وظایف روزمره تولید و نگهداری API را ساده و خودکار می‌کند.

 

آموزش در یک نگاه

این آموزش پروژه محور است. ما گام به گام یک سیستم وبلاگ دهی می‌سازیم. تمام مفاهیم نیز در قالب همین پروژه آموزش داده می‌شود.

البته اول آموزش را با تعریف عمیق مفاهیم وب آغاز می‌کنیم. باید پیش از تولید API با جنگو بدانیم که http چیست؟ API چیست؟ REST چیست؟ و RESTful API چیست ؟

پس از مفاهیم نظری دست به کد می‌زنیم. نخست پروژه وبلاگ را با جنگوی سنتی  ایجاد می‌کنیم. فرض بر این است که شما با جنگو آشنا هستید. اگر این طور نیست، این آموزش جنگو (+) را ببینید. اگر از پایه با پایتون هم آشنا نیستید این آموزش پایتون (+) را اول ببینید بعد سراغ جنگو بیایید.

پس از تکمیل پروژه در جنگوی سنتی و نوشتن تست برای آن، سراغ آموزش Django REST می‌رویم. Django REST را نصب و راه اندازی می‌کنیم. سپس گام به گام یک سیستم API را برای پروژه خود با استفاده از Django REST ایجاد می‌کنیم.

سیستم API ما چند ویژگی منحصر به فرد دارد:

  • برای تولید خودکار سریالایزر از ModelSerializer استفاده می‌شود.
  • برای کاربران مجوز دسترسی یا Permission ایجاد می‌شود.
  • کاربران می‌تواند با شیوه امن تولید Token در سایت ثبت نام کنند.

همچنین در این دوره می‌آموزید که چگونه برای سیستم API مستندسازی کنید. شما با Swagger که بهترین سیستم ایجاد مستندات است آشنا خواهید شد. سپس یک Documentation خودکار برای سیستم API ایجاد خواهید کرد.

سرانجام با تکمیل شدن سیستم API دو کار انجام می‌دهیم که این دوره را متمایز می‌کند. 1- سیستم Web API خود را در یک اپلیکیشن اندروید کاربردی می‌کنیم. 2- پروژه خود را روی یک سرور مجازی آنلاین و رایگان بارگذاری می‌کنیم.

 

این آموزش Django REST بی‌نظیر است زیرا:
  • پروژه محور است.
  • فراخوانی سیستم API در اندروید نیز آموزش داده می‌شود.
  • پروتکل‌ امنیتی تولید Token آموزش داده می‌شود.
  • از کتابخانه‌های استاندارد برای بهینه‌سازی استفاده می‌شود.
  • ارسال جنگو به سرور آموزش داده می‌شود..

 

پیشنیاز:

 

بعد از این آموزش ببینید:

 

کیدواژگان:

آموزش جنگو رست – restful api چیست – آموزش django rest framework – ساخت api با جنگو – آموزش django rest – تولید API – آموزش پروژه محور django rest – تست api جنگو در اندروید – آپلود جنگو روی سرور آنلاین – ساخت سیستم ثبت نام با api – محدود کردن دسترسی در api .

سرفصل مطالب

سرفصل مطالب

درس اول: نگاهی به پایان کار
– معرفی پروژه سیستم وبلاگ
– تفاوت Web API با Website در یک نگاه
– بررسی سیستم API ساخته شده با Django REST
– بررسی اپلیکیشن اندروید ساخته شده برای استفاده از سیستم API

درس دوم: API چیست؟
– معنی واژه API یا Application Programming Interface
– تعریف API به زبان ساده
– مفهوم Web API چیست؟
– نمونه‌هایی از کاربرد روزانه Web API
– جداسازی Back-end و Front-end از مزایای API
– نمونه‌هایی از استفاده برون سازمانی Web API
– بررسی وب سایت OpenWeatherMap در زمینه بیزینس API و اجاره آن

درس سوم: WEB چیست؟
– تاریخچه کوتاه اینترنت و وب
– معرفی پدر وب آقای Teem Berners-Lee
– پروتکل Http چیست؟
– وب چگونه از پروتکل http شکل می‌گیرد؟
– معنی www یا World Wide Web
– مفهوم URL و Hyper text Transfer Protocol
– وقتی یک URL را اجرا می‌کنیم چه اتفاقی می‌افتد؟
– DNS Server چه می‌کند؟
– اتصال TCP چگونه برقرار می‌شود؟
– درخواست HTTP چه زمانی ارسال می‌شود.؟

درس چهارم: مفهوم HTTP و چرخه درخواست و پاسخ HTTP
– ارسال HTTP در صورت برقراری TCP
– مفهوم CRUD چیست؟
– اکشن های create و read و update و delete در علوم کامپیوتر
– تمپلت یک پیام HTTP
– تحلیل یک نمونه درخواست و پاسخ HTTP
– فرآیند ارسال request و response
– مفهوم HTTP Verbs یا HTTP Methods
– متدهای post و get و put و delete
– فرق Website و Web API
– مفهوم endpoints در API
– انوع Status Code در پاسخ یک درخواست HTTP
– مفهوم Stateless چیست

درس پنجم: مفهوم REST و آشنایی با Django REST
– مفهوم REST چیست؟
– معنی REST یا Representational State Transfer
– آقای Roy Fielding بنیان گذار REST
– شرایط REST بودن یک API یا داشتن RESTful API
– معرفی یک مقاله مفید
– معرفی Django Rest Framework
– آقای Tom Christie سازنده DRF
– بررسی ساختار پروژه جنگوی سنتی
– بررسی ساختار پروژه Django REST Framework یا DRF
– نقش Serializers در پروژه DRF

درس ششم: شروع کار و ایجاد پروژه جنگو
– ایجاد پوشه پروژه از ترمینال
– ایجاد محیط مجازی با ماژول venv
– دریافت و نصب Django 3 در محیط مجازی
– ایجاد پروژه جنگو با دستور startproject
– ایجاد اپ مطالب وبلاگ با دستور startapp
– ایجاد دیتابیس جنگو با migrate و اسکریپت manage.py
– اجرای پروژه روی لوکال هاست با دستور runserver

درس هفتم: ایجاد پروژه جنگو با Pycharm
– توضیح در مورد Pycharm و نسخه‌های آن
– ایجاد پروژه Pycharm به همراه VirtualEnv
– دریافت و نصب Django 3 از تنظیمات Pycharm
– ایجاد پروژه جنگو با دستور startproject از ترمینال Pycharm
– ایجاد اپ مطالب وبلاگ با دستور startapp
– ایجاد دیتابیس جنگو با migrate و اسکریپت manage.py
– اجرای پروژه روی لوکال هاست با دستور runserver

درس هشتم: ایجاد مدل برای مطالب وبلاگ
– معرفی اپ posts در تنظیمات سراسری جنگو
– ایجاد کلاس Post و ویژگی‌های autor و title و body و زمان ساخت و روزآمدی هر پست
– اعمال تغییرات مدل اپ در دیتابیس و نمایش دیتابیس و جدول post در SQLite Manager

درس نهم: افزودن مطلب در پنل مدیریت
– رجیستر کردن مدل Post در ماژول admin برای نمایش در پنل
– تعریف کاربر مدیر پنل با دستور createsuperuser
– ورود به پنل و افزودن post به پایگاه داده از درون پنل

درس دهم: نوشتن تست برای پروژه جنگو
– ایجاد کلاس تست در ماژول tests در اپ posts
– متد setUpTestData برای ایجاد کاربر و پست فرضی توسط همان کاربر
– متد test_blog_content برای تست امکان ایجاد مطلب فرضی توسط کاربر ثبت نام شده فرضی
– اجرای تست با دستور test و بررسی نتیجه

درس یازدهم: نصب و راه اندازی Django REST
– مراحل تولید api با Django REST
– نصب djangorestframework
– تنظیم Django REST به عنوان یک app در تنظیمات پروژه
– تنظیم مجوز دسترسی به api توسط DEFAULT_PERMISSION_CLASSES

درس دوازدهم: تنظیم url نقطه ورود api
– تنظیم path در تنظیمات سراسری پروژه جنگو برای سپردن پردازش url های api
– نسخه بندی api به صورت v1 و‌ v2 و …
– تنظیم urls.py اپ مسئول پردازش url های api

درس سیزدهم: تنظیم Serializers برای تبدیل داده‌ها به JSON
– ایجاد فایل serializers.py در اپ posts
– فراخوانی ماژول serializers از rest_framework
– ایجاد کلاسی از نوع ModelSerializers
– ایجاد کلاس Meta برای تعیین model و field های قابل تبدیل به JSON

درس چهاردهم: تنظیم Views برای نوشتن منطق API
– معرفی GenericAPIView در Django REST
– استفاده از کلاس ListCreateAPIView
– استفاده از کلاس RetrieveUpdateDestroyAPIView
– ویژگی queryset و serializer_class در Generic View

درس پانزدهم: اجرا و آزمون API در محیط Django REST
– اجرای پروژه روی لوکال هاست
– اجرای url مربوط به api
– دریافت خروجی در محیط گرافیکی Django REST
– بررسی فایل Json خروجی api
– بررسی متدهای قابل اجرای GET, POST, PUT و DELETE روی یک API
– امکان ایجاد و ویرایش رکوردهای دیتابیس با API

درس شانزدهم: تعریف کاربر تازه برای تنظیم سطح دسترسی
– تعریف کاربر جدید در پنل مدیریت Django
– تعریف path سراسری برای استفاده از url های Django REST
– استفاده از صفحه ورود و خروج جنگو رست برای جابجایی بین کاربران حین تست مجوز دسترسی

درس هفدهم: تنظیم Permission در سطح View
– آشنایی با ماژول permissions در ‌rest_framework برای تنظیم مجوز دسترسی به api
– استفاده از کلاس IsAuthenticated برای محدود کردن نمایش یک View به کاربران ثبت نام شده

درس هجدهم: تنظیم Permission در سطح View
– آشنایی با کلاس های ماژول permissions
– مجوز دسترسی از نوع AllowAny
– مجوز دسترسی از نوع IsAuthenticated
– مجوز دسترسی از نوع IsAdminUser
– مجوز دسترسی از نوع IsAuthenticatedOrReadOnly
– محدودسازی سطح دسترسی به api از settings پروژه
– شخصی سازی سطح دسترسی سراسری پروژه در سطح هر View

درس نوزدهم: تولید کلاس Permission اختصاصی
– آشنایی با کلاس BasePermission از ماژول permissions کتابخانه rest_framework
– ایجاد ماژول اختصاصی permissions.py در اپ posts
– ایجاد کلاس اختصاصی IsAuthorOrReadOnly با ارث بری از BasePermission
– بازنویسی متد has_object_permission برای دسترسی ویرایش به نویسنده یک مطلب
– آشنایی با متدهای HEAD و OPTIONS و تاپل SAFE_METHODS از ماژول permissions

درس بیستم: شناسایی مجوز کاربر یا Authentication
– چالش احراز هویت کاربر در API که بر پایه درخواست HTTP کار می کند
– انواع HTTP Authentication
– مفهوم Basic Authentication
– مغهوم Session Authentication
– مفهوم Token Authentication
– مزیت JSON Web Token یا JWT
– شیوه پیش فرض احراز هویت در Django REST

درس بیست و یکم: تنظیم Authentication پروژه برای تولید Token
– آشنایی با DEFAULT_AUTHENTICATION_CLASSES در جنگو رست
– تنظیمات پیش فرض Django REST برای احراز هویت کاربر
– تغییر BasicAuthentication به TokenAuthentication در تنظیمات جنگو
– افزودن اپ authtoken و migrate پروژه
– اضافه شدن بخش Token ها به پنل مدیریت Superuser

درس بیست و دوم: ایجاد API برای ورود و خروج و تغییر گذر واژه کاربر
– نصب کتابخانه django-rest-auth
– افزودن rest_auth به اپ های پروژه
– تنظیم url پروژه برای سپردن پردازش api ورود و خروج کاربر به ماژول urls از اپ rest_auth
– آزمایش api ورود و خروج کاربر و امکان تغییر گذرواژه

درس بیست و سوم: ایجاد API برای ثبت نام کاربر
– بررسی فرآیند لاگین و ایراد کنونی
– معرفی اپ Django-allauth و ویژگی‌های آن
– افزودن اپ allth و allauth.account و allauth.socialaccount به پروژه
– افزودن اپ rest_aut.registration برای ثبت نام با API
– افزودن اپ contrib.sites و کاری که اپ sites در جنگو انجام می دهد
– تنظیم SITE_ID و EMAIL_BACKEND در تنظیمات پروژه
– نتظیم URL ثبت نام با API
– اجرای پروژه و ثبت نام کاربر آزمایشی با API
– بررسی نتایج و تغییرات پایگاه داده و توکن ها

درس بیست و چهارم: ایجاد Schema برای مستندسازی
– چرا باید برای API مستندسازی کرد
– Schema چیست و چه کاربردهایی دارد
– بررسی مستندات Schema در Django REST
– نصب coreapi و pyyaml برای چینش Schema به ساختار مبتنی بر YAML
– افزودن get_schema_view به urls.py پروژه
– اجرا و مشاهده Schema به ازای سیستم API

درس بیست و پنجم: مستندسازی Django REST API با استفاده از CoreAPI
– افزودن include_docs_urls به urls.py پروژه
– نگاشت نشانی docs به ماژول include_docs_urls
– تنظیم کلاس پیش فرض AutoSchema از coreapi به عنوان DEFAULT_SCHEMA_CLASS
– ایجاد DOCUMENTATION خودکار به وسیله coreapi و بررسی نتیجه

درس بیست و ششم: مستندسازی Django REST API با استفاده از Swagger
– معرفی Swagger و django-rest-swagger
– افزودن rest_framework_swagger به بخش INSTALLED_APPS در تنظیمات پروژه
– افزودن get_swagger_view به ماژول urls.py
– رفع باگ TemplateSyntaxError در django-rest-swagger
– مشاهده Swagger Documentation
– شخصی سازی SWAGGER_SETTINGS در تنظیمات پروژه
– ارجاع LOGIN_URL و LOGOUT سواگر به لاگین و لاگ اوت rest_framework
– آزمون API در سواگر و بررسی ابزارها

درس بیست و هفتم: استفاده از API تولید شده با Django REST در اپلیکیشن اندروید
– چرا باید هم برنامه نویس سرور و هم اندروید این درس را ببینند
– بررسی و پیوست سورس کد اپلیکیشن اندرویدی که برای این API نوشته شده
– بررسی کلاس ها و لیوت ها و عملکرد هر کدام
– نحوه ارسال request و استفاده از API در اپ اندروید با کتابخانه Volley
– تنظیم AVD برای اجرای پروژه روی لوکال هاست
– ip مورد استفاده برای ارسال request به لوکال هاست 127.0.0.1
– مفهوم JsonArray و JsonObject و تجزیه Json
– اجرای اپ اندروید و ثبت نام کاربر و نمایش پست های وبلاگ در اپلیکیشن

درس بیست و هشتم: آماده‌سازی پروژه برای ارسال به سرور آنلاین
– معرفی heorku به عنوان یک سرور آنلاین برای جنگو و دیگر پلتفرم‌های وب
– رفع مشکل psycopg2 با نصب مجدد venv
– نصب psycopg2 و django-heroku و gunicorn
– ایجاد requirements.txt و runtime.txt و Procfile
– تنظیم locals در تنظیمات پروژه
– ایجاد یک مخزن گیت و فایل .gitignore
– افزودن فایل های پروژه و ثبت تصویر پروژه با git commit

درس بیست و نهم: ارسال پروژه به سرور مجازی رایگان
– نکات لازم برای ثبت نام کاربر ایرانی در هروکو heroku
– دریافت و نصب CLI هروکو برای اجرای دستورات خط فرمان Heroku
– لاگین به هروکو با دستور heroku login
– ایجاد مخزن گیت در هروکو با دستور heroku create
– ارسال مخزن لوکال به مخزن آنلاین هروکو با git push heroku master
– راه اندازی سرور با ps و مشاهده آنلاین پروژه با heroku open
– تغییر نام دامنه پروژه در هروکو با دستور heroku apps:rename
– نکاتی برای اصلاح امنیتی پروژه و رفع باگ مشاهده صفحه swagger

درس سی‌ام: جمع بندی و طوفان فکری
– نکته‌های پایانی برای بهبود پروژه
– ایده‌هایی برای حرکت به جلو

نظرات (73)

73 دیدگاه برای آموزش Django REST Framework پروژه محور ــ ساخت API با جنگو

  1. کریمی

    با سلام
    من میخواستم بدونم
    این آموزش میتونه کمک کنه که من ی پروژه ای دارم که ی سری api از ی جایی بگیریم و در دیتا بیس ذخیر کنیم و با جنگو هم وب نمایش بدیم هم api بدیم که بقیه اپ ها استفاده کنن

    • مصطفی آصفی

      سلام وقت بخیر. ما تو این آموزش ساخت api با جنگو (بخش دوم سوالتون) رو هدف گرفتیم. لطفا فیلم معرفی و سرفصل ها رو بررسی بفرمایید.

      پی‌نوشت ۱: بعد از دیدن این آموزش پیشنهاد می کنم آموزش ساخت فروشگاه با جنگو و ری اکت (+) رو ببینید که هم یک استفاده کاربردی شرح داده شده و هم در اون کار با api بیرونی (درگاه پرداخت) و هم ارائه api به بیرون وجود داره.

      پی‌نوشت ۲: برای تمرین این آموزش حتما با نسخه ای تو خود آموزش نصب کردم پیش برید. بعد از پایان کار و یادگیری اصول می تونید به نسخه جدیدتر مهاجرت کنید.

  2. فرهاد

    سلام من اگر بخوام دیتا از API با جنگو بخونم و در دیتابیس ذخیر کنم چطوری این کار رو بکنم؟

    • مصطفی آصفی

      سلام به شما. برای خوندن اطلاعات می تونید از کتابخونه request در پایتون استفاده کنید. بعد از واکشی اطلاعات باید جیسون رو تجزیه کنید و اطلاعات مورد نیازتون رو در قالب جدولی که تو جنگو طراحی کردید از طریق view تو جنگو ثبت کنید.

      اما اگه منظورتون ثبت داده های ارسالی تو دیتابیس از طریق جنگو رست هست، بعد از تماشای این بسته و آشنایی کلی با Django REST توصیه می کنم این دوره تکمیلی و پروژه محور برای ساخت فروشگاه با جنگو رست و ری اکت (+) رو بررسی کنید.

  3. sambepour (خریدار محصول)

    از لحاط تئوری و رسوندن مفهوم عالی بود من با اینکه چندتا آموزش در این مورد خریده بودم ولی به این صورت توضیح داده نشده بود و فقط کد نویسی کرده بودند فن بیان استاد هم عالی و شیوا هستش یک مشلکی که بود آموزش قدیمی بود ورژن پکیجها قدیمی بودن وقتی با ورژن جدید کار می کردیم با هم مچ نبودن که این مشکل شیرین بود چون باید سرچ می کردیم تا مشکل حل می شد مثلا allauth0.57.0 با rest-auth مچ نمیشد باید allauth0.54.0 رو نصب می کردیم و… اصلی ترین مشکل که اگه انتقاد هم می پذیرین و جواب می دین ما آموزش جنگو رست فریم ورک رو خریدیم یعنی میخوایم رست فریم ورک رو یاد بگیریم چرا باید فرستادن api از یه وب سایت به سرور رو آموزش ندین بجاش با اپلیکیشن موبایل رو آموزش بدین؟؟؟؟؟؟؟ الان تو خیلی از سایت ها که طراحی میشه دیتا تو یک سرور دیگه هستش و ما سایتی که می سازیم باید api بفرستیم به اون سرور و دیتاها رو بگیریم. چرا جنگو رست فقط طرف سرور رو آموزش دادن ولی جنگو رست فریم ورک طرف کلاینت رو نه؟؟؟؟؟؟؟؟ به نظرم این کارتون باعث شده آموزشتون کامل نباشه و نصف جنگو رست رو آموزش داده باشین

    • مصطفی آصفی

      سلام و سپاس از این که برای بیان نظرتون به صورت کامل وقت گذاشتین و لطفی که به بنده داشتین. استفاده از جنگو رست سمت فرانت اند که به نوعی ورود به برنامه نویسی فول استک محسوب میشه چون مفصل بود تو این آموزش ساخت فروشگاه با جنگو و ری اکت (+) آموزش داده شده که در واقع آموزشی که تهیه کردین پیشنیاز این دوره هست.
      لطفا از فصل ۱ تماشا کنید و همون طور که تو این آموزش هم تجربه کردین چون کتابخونه ها به سرعت به روز میشن دقت کنید که در اجرای اون آموزش هم از نسخه های مشابه مدرس استفاده کنید.

  4. armthr.7 (خریدار محصول)

    استاد خسته نباشید
    میخواستم به یوزرا اصلیم در واقع همین یوزر => admin/auth/user/ چندتا فیلد اضافه کنم مثلا در کنار نام و نام خانوادگیش کد ملیش هم اضافه بشه باید چیکار کنم؟

  5. milad67r@gmail.com (خریدار محصول)

    سلام و خسته نباشید
    ببخشید در قسمت 8 آموزش وفتی که تو ترمینال python manage.py makemigrations posts میزنم این پیام میاد
    Traceback (most recent call last):
    File “C:\Users\m.ramezanpour\PycharmProjects\bloge_app\manage.py”, line 22, in
    main()
    File “C:\Users\m.ramezanpour\PycharmProjects\bloge_app\manage.py”, line 18, in main
    execute_from_command_line(sys.argv)
    File “C:\Users\m.ramezanpour\PycharmProjects\bloge_app\venv\Lib\site-packages\django\core\management\__init__.py”, line 442, in execute_from_command_line
    utility.execute()
    File “C:\Users\m.ramezanpour\PycharmProjects\bloge_app\venv\Lib\site-packages\django\core\management\__init__.py”, line 416, in execute
    django.setup()
    File “C:\Users\m.ramezanpour\PycharmProjects\bloge_app\venv\Lib\site-packages\django\__init__.py”, line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
    File “C:\Users\m.ramezanpour\PycharmProjects\bloge_app\venv\Lib\site-packages\django\apps\registry.py”, line 91, in populate
    app_config = AppConfig.create(entry)
    ^^^^^^^^^^^^^^^^^^^^^^^
    File “C:\Users\m.ramezanpour\PycharmProjects\bloge_app\venv\Lib\site-packages\django\apps\config.py”, line 178, in create
    mod = import_module(mod_path)
    ^^^^^^^^^^^^^^^^^^^^^^^
    File “C:\Users\m.ramezanpour\AppData\Local\Programs\Python\Python311\Lib\importlib\__init__.py”, line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File “”, line 1206, in _gcd_import
    File “”, line 1178, in _find_and_load
    File “”, line 1128, in _find_and_load_unlocked
    File “”, line 241, in _call_with_frames_removed
    File “”, line 1206, in _gcd_import
    File “”, line 1178, in _find_and_load
    File “”, line 1142, in _find_and_load_unlocked
    ModuleNotFoundError: No module named ‘posts’

    • مصطفی آصفی

      سلام و وقت بخیر. ببینید خطای اصلی خط آخر نوشته شده :
      ModuleNotFoundError: No module named ‘posts’
      شما احتمالا یک جایی تو نوشتن کد اشتباه دارین (شاید یه خطا تو مراحل یا یه خطای تایپی) و داره به شما می گه ماژولی به نام posts پیدا نمی کنم.

  6. milad67r@gmail.com

    سلام استاد عزیز

    خسته نباشید من این دوره رو خریداری کردم برای حل مشکل API

    ببخشید من می خوام اطلاعات رو از سامانه My Credit API و آدرس https://app.ics24.ir/Connect/Token بخونم و در خروجی نمایش بدم یا خروجی جیسون بگیرم

  7. Ho33ein (خریدار محصول)

    سلام خسته نباشید آقای آصفی
    وقتی از ای پی آی /rest_auth/user/ استفاده میکنم که مشخصات کاربر جاری رو به من نشون بده body این رو برمیگردونه:
    {“detail”:”Authentication credentials were not provided.”}

    • مصطفی آصفی

      سلام به شما. خطا داره میگه که مجوز دسترسی ندارید. چون این ممکنه علت های مختلفی داشته باشه که باید یکی یکی بررسی کنید، بهترین کار گوگل کردن متن خطاتون هست. مثلا ممکنه دسترسی پیش فرض رو تعریف نکرده باشین که اگه گوگل کنید تو استک اورفلو مشابه این لینک (+) می تونید راهکار رو بررسی و آزمایش کنید.

  8. فاطمه خورشیدی (خریدار محصول)

    دوره در حد مبتدی و بسیار ناقص بود

    • مصطفی آصفی

      سلام. ریز سرفصل ها و فیلم معرفی رو پیش از تهیه با دقت بررسی نکردید. چه چیزی داخل سرفصل ها نوشته شده که گفته نشده؟

      پی‌نوشت: ما یک سیر کامل رو برای مخاطب مبتدی طی کردیم. طبیعتا این بحث جای کار بسیار داره که بعد از طی این دوره کاربر می تونه بخش به بخش از روی آموزش های تکمیلی طی کنه. برای مثال آموزش ساخت فروشگاه با جنگو رست و ری اکت (+) حاوی تعدادی از این نکته‌هاست.

  9. نازیلا کارکن (خریدار محصول)

    Nazila, [12/12/22 2:49 PM]
    با سلام.
    من در موقع اجرای پروژه با خطای زیر روبرو میشم و حتی با تست روش جایگزین که فرمودید(https://stackoverflow.com/questions/70319606/importerror-cannot-import-name-url-from-django-conf-urls-after-upgrading-to/70319607#70319607) باز هم مشکل برطرف نشد. ممنون میشم راهنمایی بفرمایید.

    خطا:
    Exception in thread django-main-thread:
    Traceback (most recent call last):
    File “/usr/lib/python3.9/threading.py”, line 973, in _bootstrap_inner
    self.run()
    File “/usr/lib/python3.9/threading.py”, line 910, in run
    self._target(*self._args, **self._kwargs)
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/django/utils/autoreload.py”, line 64, in wrapper
    fn(*args, **kwargs)
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/django/core/management/commands/runserver.py”, line 134, in inner_run
    self.check(display_num_errors=True)
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/django/core/management/base.py”, line 475, in check
    all_issues = checks.run_checks(
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/django/core/checks/registry.py”, line 88, in run_checks
    new_errors = check(app_configs=app_configs, databases=databases)
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/django/core/checks/urls.py”, line 14, in check_url_config
    return check_resolver(resolver)
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/django/core/checks/urls.py”, line 24, in check_resolver
    return check_method()
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/django/urls/resolvers.py”, line 494, in check
    for pattern in self.url_patterns:
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/django/utils/functional.py”, line 57, in get
    res = instance.dict[self.name] = self.func(instance)
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/django/urls/resolvers.py”, line 715, in url_patterns
    patterns = getattr(self.urlconf_module, “urlpatterns”, self.urlconf_module)
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/django/utils/functional.py”, line 57, in get
    res = instance.dict[self.name] = self.func(instance)
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/django/urls/resolvers.py”, line 708, in urlconf_module
    return import_module(self.urlconf_name)
    File “/usr/lib/python3.9/importlib/__init__.py”, line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
    File “”, line 1030, in _gcd_import
    File “”, line 1007, in _find_and_load
    File “”, line 986, in _find_and_load_unlocked
    File “”, line 680, in _load_unlocked
    File “”, line 850, in exec_module
    File “”, line 228, in _call_with_frames_removed
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/blog_api/urls.py”, line 24, in
    path(‘api/v1/rest-auth/’, include(‘rest_auth.urls’)),
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/django/urls/conf.py”, line 38, in include
    urlconf_module = import_module(urlconf_module)
    File “/usr/lib/python3.9/importlib/__init__.py”, line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
    File “”, line 1030, in _gcd_import
    File “”, line 1007, in _find_and_load
    File “”, line 986, in _find_and_load_unlocked
    File “”, line 680, in _load_unlocked
    File “”, line 850, in exec_module

    Nazila, [12/12/22 2:49 PM]
    File “”, line 228, in _call_with_frames_removed
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/rest_auth/urls.py”, line 1, in
    from django.conf.urls import url
    ImportError: cannot import name ‘url’ from ‘django.conf.urls’ (/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/django/conf/urls/__init__.py)

    • مصطفی آصفی

      سلام. لطفا نسخه جنگو مورد استفاده خودتون رو مطابق فایل requirements.txt تنظیم کنید:
      Django==3.0.3
      کافیه که بعد از ساخت محیط مجازی فایل بالا رو از سورس کدهایی که پیوست کردم کپی و تو پوشه پروژه خودتون کپی و بعد دستور
      pip install -r requirements.txt
      رو اجرا کنید.
      پایتون هم ترجیحا مشابه آموزش (گمانم ۳.۷) برای ساخت venv استفاده کنید تا شرایطتون کاملا مشابه آموزش باشه. کافیه نسخه پایتون مورد نظر رو نصب و موقتا تو PATH ویندوز بالای همه پایتون ها بگذارینش. بعد یک محیط مجازی با اون نسخه بسازید. بعد از اون هر وقت خواستین یه پروژه پایتون با اون نسخه بسازین، کافیه این محیط مجازی رو فعال کنید و بعد از داخل اون یک محیط مجازی جدید بسازید (کپی کنید انگار).

      پی‌نوشت: چون کدتون رو نمی بینم احتمالا داره که این مشکل به دلیل استفاده از جنگو ۴ باشه و منسوخ شدن چیزی. بایستی خطایی که دریافت می کنید و تغییرات کدتون نسبت به آموزش رو دقیق تر بیان کنید که بشه بهتر نظر داد.

  10. مهدی شلاهی (خریدار محصول)

    سلام . استاد آصفی امکانش هست ساخت شبکه اجتماعی با جنگو رست رو آموزش بدین؟
    ساخت شبکه اجتماعی با جنگو رست یسری نکات داره مثل سریالایزرهای تودرتو که توی سیستم فالو آنفالو بکارمیاد و … که حتی کسایی که این دوره ساخت وبلاگ با جنگو رست رو پشت سرگذاشته باشن بازم توی اونجا به مشکل میخورن
    ممنون میشم همون دوره شبکه اجتماعی که با جنگو آموزش دادینو با جنگو رستم آموزش بدین
    مرسی

    • مصطفی آصفی

      سلام وقتتون بخیر. پیشنهاد جالبیه. راستش تو این بازه زمانی روی آموزش یادگیری ماشین (+) متمرکز هستم ولی شما یا دوستان دیگه می تونید با ارسال این کاربرگ تدریس در هم رویش (+) مدرس/کارآموز هم رویش برای این دوره بشین (موقع تکمیل فرم تو بخش اطلاعات آموزش هر دو فیلد توضیحات و سرفصل رو بنویسید «کارآموزی»). در این صورت تو گروه های هم فکری هم رویش عضو میشین و ضمن دریافت مشاوره برای تحقیق، نتیجه تحقیقات خودتون رو به صورت آموزش در هم رویش منتشر هم می کنین. ضمنا تو یوتیوب این لیست پخش شبیه سازی اینستاگرام با جنگو رست و ری اکت (+) رو هم بررسی کنید. می تونه مبنای کارتون باشه.

  11. golshan.zahra500@gmail.com

    سلام . در این دوره تست نویس api ها هم آموزش داده شده ؟

    • مصطفی آصفی

      سلام به شما. تست نویسی به شکل ساده برای پروژه جنگو انجام شده ولی تست نویسی حرفه ای API خیر. ریز جزییات دوره رو بعد از تماشای فیلم معرفی تو بخش «سرفصل‌ها» در انتهای توضیحات مطالعه کنید.

  12. فاطمه یوسفی (خریدار محصول)

    سلام وقت بخیر استاد،
    مرسی از اموزشای عالیتون😍😍، استاد میشه لطفا ی دوره اموزشی هم برای طراحی سایت صرافی مث نوبیتکس با django، بذارین لطفا؟ من خیلی دوس دارم یه همچین سایتی ب عنوان نمونه کار درست کنم ولی راستش بلد نیستم🙁

    • مصطفی آصفی

      سلام به شما خانم یوسفی و ممنون از لطف شما. خواشحالم که براتون مفید بودن. موضوع جالبیه یادداشت کردم و حتما بهش فکر می کنم. البته شما با جستجوی عبارت پایین در گوگل و یوتیوب باید بتونید نقطه های شروعی برای خودتون پیدا کنید. اگه آموزش های بنده رو با دقت دیده باشید الان باید بتونید آموزش های خارجی رو هم استفاده کنید چون قاعدتا مبانی رو می شناسید.
      create broker website django

  13. محمد وحید کوه کن (خریدار محصول)

    البته وقتی از پنل ادمین میخوام عضوی رو اضافه کنم مشکلی نداره هم regexvalidation ی که نوشتم و ارورش کار میکنه هم unique بودنش.. اما وقتی با api امتحان میکنم این خطا برمیگرده

    • مصطفی آصفی

      دنبال توضیح پایین لطفا این لینک (+) رو هم مطالعه کنید و ضمنا یک signal هم شبیه درس ۴۷ ساخت اینستاگرام با جنگو (+) بگذارین که از پنل هم که آپدیت کردین User یکسان به روز بشه. اینجا سندر تو سیگنال مدل User میشه.

  14. محمد وحید کوه کن (خریدار محصول)

    سلام استاد ممنون با راهنمایی شما هر دو مشکل حل شد و همینطور با الهام از همون درس هفتم فصل اول ساخت اینستاگرام کلاس AbstractUser هم overwrite کردم و فیلم شماره تلفن هم اضافه کردم که با موفقیت به دیتابیس اضافه شد اما مشکلی داره که موقع ثبت یوزر این ارور رو برمی گردونه:
    django.db.utils.IntegrityError: UNIQUE constraint failed: account_customuser.phonenumber
    (پارامتر unique رو هم برای فیلد ست کردم که علاوه بر یوزرنیم و ایمیل شماره تفلن هم یونیک باشه) هرچقدر سرچ کردم جواب درستی برای حل مشکل پیدا نکردم. چطور میتونم این مشکل رو حل کنم

    • مصطفی آصفی

      سلام به شما و پوزش از تاخیر. خیلی خوبه که با تلاش و تحقیق دارید کارتون رو شخصی می کنید. ببینید این خطایی که گرفتین با توضیحی که دادین احتمالا به خاطر وضعیت قبلی و فعلی دیتابیسه. شما اولین بار که migrate کردین خب فیلد phone رو نداشتین. حالا این فیلد رو اضافه کردین و UNIQUE هم گذاشتین. این یعنی جنگو باید این فیلد رو تو تموم سطرها ایجاد کنه و مراقب باشه که مقدارش تکراری نباشه. بنابراین مثلا اگه شما مقدار پیش فرض این فیلد رو گذاشته باشین 0 یا مثلا اگه امکان empty بودن رو بدین این تناقض داره. یک راهش اینه که نقدا برای تمام کاربرایی که از قبل این رو ندارن فعلا مقدار پیش فرض phone رو برابر id خودشون بگذارین که شرط unique بودن لغو نشه. بعد کم کم این رو که از کاربرا (با نشون دادن دیالوگ تلفن وارد کنید) گرفتین جایگزین کنید.

  15. hossein.ahmadi.b@gmail.com (خریدار محصول)

    سلام و خسته نباشید خدمت استاد گرامی
    در بخش لوگین توسط ای پی ای فرمودید کد زیر رو در url وارد کنیم
    path(‘api/v1/rest-auth/’, include(‘rest_auth.urls’)),
    ولی این کد با اینکه پیکجش هم نصب هست این خطا رو میده و دیگه سرور ران نمیشه
    ImportError: cannot import name ‘url’ from ‘django.conf.urls’

    • مصطفی آصفی

      سلام و پوزش از تاخیر. با فرض این که کد رو مثل من پیش رفته باشین و خطای کد نداشته باشین این خطا احتمالا به دلیل اینه که ما آموزش رو با جنگو ۲ پیش بردیم اما شما دارین از جنگو ۳ یا ۴ استفاده می کنید. این نشانی (+) رو برای نمونه ببینید و لطفا نتیجه رو اعلام کنید که اگه کد توی اون درس نیاز به روزآمدسازی داره در کل ویرایش لازم رو انجام بدم.

  16. گلرو سلطانی (خریدار محصول)

    سلام خدمت استاد عاصفی عزیز ببخشید من مطابق با شما عمل کردم در پروژه خودم و در حال حاظر من فقط یک سوال داشتم اول این که راهی وجود داره تا کاری بکنم که پست هایی که یک کاربر میگذاره توی دیتا بیس خود کاربر سیو بشه؟ یعنی مثل اطلاعات یوسر نیم و پسورد که کاربر اگر پسورد رو بزنه با یوسرنیم اون اطلاعات پسورد و یوسرنیم و ایدی برای کاربر بالا میاد بخشی هم داشته باشه که بتونه توی اون پست های خودشو توی دیتابیس خودش بدون نیاز به این که ایدی پست رو در اخر ادرس قرار بدیم ببینه؟

  17. محمد وحید کوه کن

    سلام استاد عرض خسته نباشید تشکر بابت دوره خوبتون
    من هر دو دوره جنگو از صفر و django rest framework رو دیدم و سعی دارم چند تا api برای مدل های هوش مصنوعی بنویسم و چند تا سوال در این باره دارم که واقعا ممنون میشم پاسخشون رو بفرمایید:
    سوال اول اینکه از بخش پرمیشن ها یاد گرفتیم چطور برای کاربر عمومی کاربر عضو مدیر و … مجوز دسترسی به api صادر کنیم اما من میخوام کاربری که به api دسترسی داره علاوه بر عضویت اشتراک هم تهیه کرده باشه(مثلا یک ماهه یا سه ماهه و …) اول اینکه با جنگو چطور میشه این ایده اشتراک پولی رو اجرا کرد و دوم پزمیشن مربوط به اون رو چطور تنظیم کرد؟
    سوال بعدی اینکه طبق جستجویی که در youtube کردم ایجاد api برای مدل هوش مصنوعی فقط در مرحله view تفاوت هایی داره که من متوجهشون نشدم (مثلا api_view یا router چی هستند؟یا چرا از سریالایزر درapi اصلی استفاده نشده) این لینک گیت هاب اون آموزشه: https://github.com/satssehgal/MLAPLI/
    میدونم که خیلی طولانی شد اما خیلی لطف میکنین اگر راهنماییم کنین بازم ممنون

    • مصطفی آصفی

      سلام به شما آقای کوه کن. شما هم خسته تلاشتون نباشید.
      در مورد سوال اولتون ببینید شما می تونید کلاس user رو همون طور که تو آموزش ساخت اینستاگرام هم توضیح دادم برای خودتون شخصی کنید. مثلا بر اساس سوالی که پرسیدین می تونید به کلاس یوزر پیش فرض جنگو یک فیلد have_payment اضافه کنید و موقع ارسال یک api چک کنید که آیا کاربری که این درخواست رو داده پرداخت کرده هست یا نه. اگه نه بهش بگید اشتراک بخر و هدایت کنید به درگاه و بعد خرید مقدار این فیلد رو true کنید تا تو فراخوانی های بعدیش بتونه api رو ببینه.
      در مورد سوال دومتون ببینید ما به دو شکل می تونیم view برای API بنویسیم در جنگو رست. یکی Class-based هست که تو این آموزش مینای کارمون بود (شیوه جدید و توصیه شده جنگو) و یکی هم function-based هست. یعنی view که می سازید می تونه یک کلاسی باشه که از کلاس view بزرگتری ارث می بره یا یک تابع باشه که هر ویژگی رو به یک صورتی براش تنظیم می کنید. مثلا تو آموزش ساخت فروشگاه ما از حالت تابعی استفاده کردیم. تو حالت تابعی مثلا اگه بخواهید یک تابع view فقط برای متد خاصی (مثلا get صدا زده بشه) به صورت پایین از دکوریتوهای جنگو رست دکوریتور api_view رو صدا می کنید و اون رو بالای تابع می نویسید. در این صورت تابع اون view فقط برای درخواست های از نوع get اجرا میشه:

      from rest_framework.decorators import api_view

      @api_view(http_method_names=[‘POST’])
      def myView(request):
      // some code for view functionality

  18. مسعود

    سلام وقت بخیر
    داخل این دوره شما پروژه هم هست که به فرانت متصل کنید یا نه؟
    یا فقط از نرم افزار های مثل پست من و … استفاده میشود؟

    • مصطفی آصفی

      سلام وقت شما هم بخیر. ما از دانش این دوره در این آموزش ساخت فروشگاه با جنگو (+) استفاده کردیم. در اونجا صدا کردن API رو تو اپ ری اکت با جاوا اسکریپت تجربه می کنیم و نکته های فنی احراز هویت و … رو هم به مرور کامل می کنیم.

      همچنین لطفا سرفصل های همین دوره رو هم در انتهای توضیحات بررسی کنید. درس ۲۷ استفاده از یک مورد رو برای مثال تو اپلیکیشن اندرویدی نشون دادیم. البته نه به این معنی که کدنویسی اندروید داشته باشیم. صرفا برای این که یک دیدی از API داشته باشین. بعد هم به سرور آنلاین فرستادیم.

  19. Golrosoltani@gmail.com (خریدار محصول)

    سلام استاد اصفی خسته نباشید.من کار با جنگو رست برای تولید ای پی ای رو در سایت های مختلفی گذروندم و پروژه ام تقریبا کامل فقط بخش ساخت یک صفحه برای لاگین و لاگ اوت و ثبت نام مونده بود که طبق پیشنهاد یکی از دوستان قصد داشتم از بسته شما استفاده کنم . بسته بسیار خوبی دارید ونسبت به بقیه بسته های مشابه سایت های دیگه خیلی خوب و راضی کنندس ممنون از زحماتتون. استاد بنده یک مشکل دارم و اون هم اینه که وقتی شما در درس 21 یک اشتباه تایپی داشتید که این اشتباه رو در درس 24 درست کردید و هیچ مشکلی پیش نیومد اما من وقتی میخوام طریقه صحیحش که مثل شما هست رو داخل کلاس ستینگ بنویسم اروری برای من میاد لطفا اگر میشه کمکم کنید. این کد های کلاسم که خواستم مثل شما بنویسم ‘DEFAULT_AUTHENTICATION_CLASSES’: [
    ‘rest_framework.authentication.SessionAuthentication’,
    ‘rest_framework.authentication.TokeAuthentication’
    ] و این اروری هستش که برای من میاد
    ImportError: Could not import ‘rest_framework.authentication.TokeAuthentication’ for API setting ‘DEFAULT_AUTHENTICATION_CLASSES’. ImportError: Module “rest_framework
    .authentication” does not define a “TokeAuthentication” attribute/class.

    • مصطفی آصفی

      سلام و سپاس از لطف شما. خانم سلطانی یه خطای تایپی دارید. TokeAuthentication رو اشتباه نوشتید. باید Token بنویسید.
      معمولا وقتی این خطا رو می گیرید از پایتون (فلان ماژول فلان اتریبیوت رو نداره … ) بیشتر مواقع یا خطای تایپیه یا خطای نصب.

  20. محمد وحید کوه کن

    سلام و وقت بخیر استاد سوالم اینه که من یه نرم افزار بر پایه دسکتاپ با فریمورک kivy دارم طراحی میکنم که طبق راهنمایی های شما میخوام بک اند نرم افزار رو(که شامل کتابخانه های متعدد و هوش مصنوعیه) روی سرور بارگذاری کنم. با توجه به توضیحات این آموزش و آموزش جنگو از صفر به این نتیجه رسیدم که سمت سرور رو میتونم با این دو آموزش طراحی کنم و backend با api با frontend نرم افزار در ارتباط باشه درسته؟

    • مصطفی آصفی

      سلام و وقت شما هم بخیر. بله درست متوجه شدید. شما باید اطلاعاتی که نیازه در سرور پردازش و اعلام بشه رو در قالب صدا کردن تعدادی api برای فرانت اند فراهم کنید. بعد از این که api رو توسعه بدین فرقی نمی کنه که دیگه اون رو در کیوی پردازش کنید (همون طور که تو پروژه نقشه گردشگری با هم در کیوی تجربه کردیم) یا هر فرانت اند دیگه ای. و خوبی api هم همینه. البته امنیت و مباحث فنی هم داره که بخشی در دوره گفته شده و بخشی هم به اقتضای کار کم کم تجربه می کنید.

  21. ایمان رجبی (خریدار محصول)

    سلام و عرض ادب خدمت استاد اصفی عزیز خدا قوت خسته نباشید استاد بنده با توجه به اموزش های شما میخواستم دوتا کلاس بسازم یکیش که کلاس پست بود که دقیقا مثل خودتون نوشتم و درست بود دیگری کلاسی بود برای امتیاز ها که میخواستم به نحوی باشه که امتیاز کاربر ها به عنوان ورودی وارد دیتابیس بشه و به عنوان خروجی اون امتیاز همراه اسمشون به صورت انلاین نمایش داده بشه. من پوشه مدل رو اینطوری کد نویسی کردم و وقتی سیستم رو ران میکنم صفحات برای من بالا میاد ولی وقتی میخوام امتیازات رو سیو کنم ارور میده و سیو نمیشه
    لطفا کمم کنید و بگید ایراد کد من چیه
    from django.db import models
    from django.contrib.auth.models import User

    class Post(models.Model):
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    title = models.CharField(max_length=85)
    body = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    def __str__(self):
    return self.title

    class Points(models.Model):
    author= models.ForeignKey(User, on_delete=models.CASCADE)
    score = models.IntegerField()

    • مصطفی آصفی

      سلام به شما جناب رجبی عزیز. لطفا خطایی که دریافت می کنید رو ارسال کنید.

  22. مهدی (خریدار محصول)

    سلام ، ممنون از آموزش شما . برای ارسال عکس به سرور چه کاری باید بکنیم لطفا راهنمایی بفرمایید .

    • مصطفی آصفی

      سلام به شما. سلامت باشید. برای آپلود عکس به صورت فایل می تونید از نمونه هایی شبیه سورس کدهای این گروه (+) الهام بگیرید. کار با فایل رو در آموزش وبلاگ حرفه ای توضیح دادیم.

      پی نوشت: برای مستقل شدن یادتون باشه که بعد از یاد گرفتن اصول یک فریمورک باید دست به گوگل باشید برای شخصی سازی ها و خواسته‌های خودتون:
      How to upload images in django rest framework

  23. ایمان رجبی (خریدار محصول)

    معذرت میخوام اگر خوب منظور رو نرسوندم. شما در درس ۲۳ که خواستید ای پی ای ثبت نام بسازید گفتید باید یک ای پی ای رجیستریشن هم داشته باشیم که بعدش گفتید جنگو و جنگو رست یک اپ پیش ساخته از قبل اماده برای رجیستریشن ندارند برای همین شما یکی از اپ های جانبی رجیستریشن که django-allauth بود رو معرفی و استفاده کردید . خب بنده کارهای دیگه ای به غیر از ثبت نام دارم و برای همین نیاز دارم ای پی ای رجیستریشن مخصوص کارهای دیگه رو بتونم بسازم اما نمیدونم برای ساخت ای پی ای رجیستریشن باید از چه اپ هایی یا کتابخونه هایی استفاده کنم.خواهشم این بود که اگر میشه راهنمایی کنید که از کجا میتونم با اپ ها و کتابخونه هایی که نیاز دارم اشنا بشم. اگر یک منبع فارسی زبان یا کتابی وجود داره ممنون میشم معرفی کنید

    • مصطفی آصفی

      سلام مجدد. خواهش می کنم مشکلی نیست. ببینید بهترین کار برای این که امکانات یک اپ رو بتونید ازش الهام بگیرید برای ساختن اپ مشابه با امکانات بیشتر اینه که سورس اون اپ رو ببینید. بعد از این که برای مثال همین django-allauth رو نصب می کنید به مسیر venv و بخش lib برید و سورس اپ رو بررسی کنید. خیلی سخت نیست. جدول هایی رو در پاسخ api ایجاد می کنه. سورس رو که چند روز وقت بگذارید و بررسی کنید چون متن بازه می تونید کلون کنید و شخصی سازی های خودتون رو اعمال کنید. شبیه کاری که برای ساختن مجوز دسترسی خاص افراد نویسنده کردیم.

  24. ایمان رجبی (خریدار محصول)

    سلام و عرض ادب خدمت استاد اصفی عزیز واقعا ممنون و خسته نباشید من طبق فرمایش شما دوره ساخت وبلاگ حرفه ای رو تموم کردم و الان مشغول به دوره ساخت برنامه ای شبیه اینستاگرام هستم و واقعا میتونم بگم حتی یک اموزش بد هم در تمام اموزش های شما وجود نداشت و واقعا حرفه ای بود و خیلی خیلی ممنون. استاد بنده دوره های شمارو مطالعه کردم و الان قصد دارم با استفاده از توانایی هایی که دارم یک ای پی ای برای اپلیکیشن خودم استخراج کنم و فقط یک سوال دارم. شما در درس 23 فرمودید که جنگو رجیستر پیش ساخته ای برای ثبت نام کاربران نداره برای همین یک نمونه که allauth بود رو معرفی کردید من میخوام ای پی ای رو برای موارد دیگه مثل قابلیت سرچ ، ساخت پروفایل عکس دار و قابلیت فالو کردن یا مثلا برای مواردی که میخوام یک روزه عکس تبلیغاتی بفرستم توی برنامه هم استخراج کنم ولی نمیدونم چه نوع رجیستری برای این کارها لازم ، لطفا اگر میشه یک منبع معرفی کنید که بتونم با انواع رجیستر ها که نیاز هستش برای این کارها آشنا بشم و مطالعه کنم. خیلی میبخشید اگر طولانی شد واقعا ممنون

    • مصطفی آصفی

      سلام جناب رجبی عزیز. راستش خیلی خوب متوجه سوالتون نشدم. منظورتون اینه که برای مثال کاربر وقتی می خواد برای پروفایلش عکس بگذاره باید ثبت نام کرده باشه؟ این رو همون طور که تو دوره اینستاگرام هم عرض کردم می تونید با چک کردن این که کاربر (user) ارسال به سرور تو ریکوئست قبلی وارد شده بوده یا نه چک کنید. اگه منظورتون رو درست متوجه نشدم لطفا با مثال بیشتر توضیح بدین.

  25. رحیم خیرگو (خریدار محصول)

    سلام مجدد و خسته نباشید و تشکر به خاطر این سایت خوبتون
    استاد من بعد از دو روز که ویدیوها رو نگاه کردم واقعا سر در گم شدم من نمیدونم این نوع استفاده از api کجا استفاده میشه من حداقل نیازی که دارم اینه که با استفاده از api یه سری اطلاعات رو بفرستم به سرور وقتی این اطلاعات رو پردازش کردم یه سری اطلاعات رو برگردونم در هر دو سمت من باید خودم اطلاعات رو پردازش کنم اینکه اتوماتیک سیستم این کار رو برام بکنه کار من راه نمیفته لطفا راهنمایی کنید در هر دو سمت اطلاعات چطور به صورت خام میتونم دریافت و مجددا برگردونم

    • مصطفی آصفی

      سلام به شما. ببینید شما اگه بخش سوم آموزش کیوی (ساخت نقشه گردشگری) رو دیده باشین اونجا در مورد پردازش API صحبت کردم. در انتهای همین آموزش جنگو رست هم پردازش API رو در اندروید توضیح دادم. شما کافیه برای امتحان همین API تولیدی این پروژه خودتون رو تو اپلیکیشن کیوی بخونید. برای شروع هم یه API آزمایشی GET ساده بفرستید و اونطرف پردازش کنید.
      ضمنا کار حرفه ای تر با API رو تو این آموزش ساخت فروشگاه با جنگو و ری اکت تو فصل های دوم به بعد خواهیم داشت. در صورت تمایل می تونید اونجا هم کار رو دنبال کنید.

      پی نوشت: از سوالتون بنده این برداشت رو می کنم که نه آموزش کیوی و نه این آموزش رو با دقت لازم ندیدین. حتما دست کم اون درس پردازش API (که اونجا API نقشه رو پردازش می کنیم) و درس های پایانی این بسته رو دست کم با دقت ببینید و نتیجه کارتون رو اینجا اعلام کنید.

  26. رحیم خیرگو (خریدار محصول)

    سلام
    تشکر میکنم به خاطر ويديوهای آموزشی من این سری آموزش رو به سفارش شما برای استفاده در kivy تهیه کردم که اشاره به نحوه استفاده در kivy در آن نشده یه سوالی داشتم برای برنامه نویسی اندروید kivy بهتر است یا جاوا کاتلین

    • مصطفی آصفی

      سلام به شما. سلامت باشید. جواب این سوال به شما بستگی داره. اگه یه اپی لزوما برای اندروید کافیه و کاتلین یا جاوا هم می تونید کد بزنید حتما از اندروید استودیو و این زبان ها استفاده کنید. به ویژه اگه اپلیکیشن فارسی رو باید پشتیبانی کنه. کیوی پشتیبانیش از زبان فارسی هنوز خیلی ضعیفه.
      اگه اپتون کراس پلتفرمه و مثلا یک بازی یا اپی هست که زبان درش خیلی مطرح نیست و شما هم پایتون کار پس بی شک کیوی گزینه خوبیه. اگه اپ کراس پلتفرمه و زبان هم مهمه و با جاوا اسکریپت آشنایی دارید ری اکت نیتیو گزینه خوبیه. همه چیز بستگی به امکانات شما و نوع پروژه داره (و البته آینده اون)

  27. ایمان رجبی (خریدار محصول)

    خیلی خیلی ممنون استاد مشتاقانه منتظر دوره های بعدی که فرمودید هستم

  28. ایمان رجبی (خریدار محصول)

    سلام و خسته نباشید خدمت استاد اصفی عزیز خیلی خیلی ممنون از این اموزش خوبتون من این دوره رو تموم کردم و بسیار راضی بودم و الان هم میخوام تشکر کنم و خسته نباشید بگم و هم دوتا سوال داشتم اول این که لطفا اگر میشه یک منبع معرفی کنید که بشه توی اون همه کتابخانه ها یا ماژول های جنگو رو دید و فهمید کار هرکتابخانه یا ماژول چیه و دو این که من اگر بخوام توی این زمینه حرفه ای تر بشم که مثلا بتونم api های مخصوص چت کردن کاربران باهم یا این که بتونن پروفایل با عکس خودشون رو داشته باشن بسازم باید چه منبع دیگه ای رو بخونم که بتونم این کارهارو انجام بدم

    • مصطفی آصفی

      سلام و سپاس برای ابراز محبتتون. خوشحالم که دوره انگیزه بخش بوده.
      در مورد فهرست کتابخونه ها این صفحه مستندات جنگو رو ببینید.
      در مورد بخش دوم سوالتون توصیه می کنم آموزش های پایین رو ببینید:
      ساخت وبلاگ حرفه ای و انتشار آنلاین با جنگو
      ساخت وبسایت شبیه اینستاگرام با جنگو

      انشالله به زودی آموزش ساخت فروشگاه با جنگو و ری اکت هم در هم رویش خواهیم داشت که اونجا همین بحث API رو با تجربه های دوره های قبلی روی هم جمع می کنیم تا آماده ورود به بازار کار یا توسعه استارتاپ خودتون بشید.

  29. امین اجاقی (خریدار محصول)

    با سلام و درود خدمت استاد بزرگ و گرامی مصطفی آصفی عزیز و دوست داشتنی با تشکر از پاسخ گویی بسیار نیکو و صمیمانه شما استاد عزیز برکت خدا بر شما و خانواده محترمتان .

  30. امین اجاقی (خریدار محصول)

    سلام و درود خدمت استاد بزرگ و دوست داشتنی مصطفی آصفی عزیز استاد گرامی بسیار دوره ی نیکو و ارزشمندی تهیه کرده اید و من این دوره بدون هیچ خطایی در کارم طی کردم و تمام آموزه ها کامل یاد گرفتم و با مسیر کار Rest Full API آشنایی کامل پیدا کردم که در نظر دارم پس از اتمام دوره جاوا اسکریپت که قصد دارم بعد از این پروژه که امروز به پایان رسید آغاز کنم یک پروژه کامل با جنگو ایجاد کنم به همراه API و یک سوال دارم این است که آیا می توانم با استفاده از کتابخانه Tkinter یک نرم افزار کامپیوتری ایجاد کنم و API را بر روی آن فعال کنم زیرا من Tkinter نیز بلد هستم و می خواهم از کل داشته هایم یک پروژه کامل ایجاد کنم و در رزومه کاریم قرار دهم و پروژه ای که در نظر دارم یک نرم افزار دانلود موسیقی می باشد که بعدا با یاد گرفتن Kivi نسخه موبایلی آن را نیز اضافه کنم.
    و سوال دیگر اینکه استاد عزیز این APP موبایلی که در پروژه قرار داده اید را چگونه باید در سیستم اجرا کنم زیرا در پای چارم دکمه Run مانند ویدئو روشن نیست تا پروژه را اجرا نمایم.
    با تشکر از محبت های بسیار نیکوی شما استاد عزیز و دوست داشتنی برکت خدا بر شما و خانواده محترمتان شدر مسیر زندگی من در موضوع برنامه نویسی یکی از پر برکت ترین استاد هایم هستید که بسیار از شما یاد گرفته و یاد خواهم گرفت با تشکر .

    • مصطفی آصفی

      سلام به شما و خدا قوت. همین طور بسیار ممنونم از لطفی که به بنده دارین. شرمنده می کنید.
      در مورد سوال اولتون بله مشکلی نیست. شما در Tkinter به راحتی می تونید از کتابخونه های پایتون استفاده کنید. برای مثال با پایتون و کتابخونه request (یا کتابخونه های دیگه) می تونید API رو فراخوانی و به صورت جیسون دربیارید و بعد جیسون رو اون طوری که مورد نیازه تو اپ TKinter به کار بگیرید. این نمونه فراخوانی API در پایتون (+) رو ببینید.

      در مورد اپلیکیشنی که تو اون پروژه استفاده شد اگه دقت کرده باشین من اونجا از اندروید استودیو استفاده کردم. نصب اندروید استودیو رو می تونید به رایگان تو برگ های هم رویش دریافت کنید. اما توصیه نمی کنم خودتون رو درگیر اون کار بکنید. من اون اپ رو فقط مثال زدم که نحوه استفاده از API در یک اپ رو نشون داده باشم. نصب اندروید استودیو و کتابخونه ها و گریدل برای کسی که آشنا نیست خیلی داستان داره و مگه در حالتی که قصد داشته باشین توسعه دهنده اندروید بشید بهتون توصیه نمی کنم.

  31. محمدمتین محمدی (خریدار محصول)

    درود استاد خسته نباشید، من یه جا گیر کردم واقعا، برای ثبت نام به صورت ای پی آی با فیلد های اختصاصی خودمون باید چیکار کنیم؟؟ آیا میتونیم فیلد های خودمون رو به اون اپ هایی(allauth, …) که ای پی آی ثبت نام میدادن به ما اضافه کنیم؟ یا اینکه اگر قرار باشه که خودمون یه اپ ثبت نام بنویسیم راهنمایی میکنید که باید چیکار کنیم(اگر جای دیگه ای به طور انگلیسی میشناسید که اینو گفته باشه لطف میکنید که لینکش رو قرار بدید) و در آخر یه پیشنهاد دارم اونم اینه که لطفا آموزش پیشرفته ای پی آی با جنگو رو هو تهیه کنید.. سپاس

    • مصطفی آصفی

      سلام به شما. اگه منظورتون اختصاصی کردن درس 23 هست، دو کار میشه کرد:
      1- اپ allauth رو برای خودتون فورک و بازنویسی کنید که از خیلی بخش های مفیدش استفاده کنید.
      2- یک سیستم ثبت نام اختصاصی برای خودتون بنویسید. برای شروع می تونید عبارت «register form by django rest» رو گوگل کنید، فیلم های خوبی تو یوتیوب و مقاله های خوبی در این زمینه هست. من یه مورد خاص رو پیشنهاد نمی کنم که محدود به گفته من بشید. بگردید تا مورد متناسب نیاز خودتون رو پیدا کنید.

  32. صالحی

    سلام خسته نباشید من به پیشنهاد شما استاد اصفی این‌ دوره مخصوص api رو شروع کردم و به صورت مروری یکبار خوندم و الان برای بار دوم دارم میخونم و تک تک کارهایی که میگید رو انجام میدم فقط من یه مشکل دارم اونم این که من میخوام توی برنامم همه کاربرها شماره و نوبتشون توی صفحه مخصوص شماره ها به ترتیب پخش بشه همراه با اسم و مشخصاتشون فقط هیچ ایده ای برای این که چجوری کد نویسی کنم که همه بتونن نوبت و شماره هم رو ببینن ندارم🤦‍♀️ لطفا اگر میشه بهم بگید چجوری میتونم چنین کدی بنویسم داخل کدهای api که چنین چیزی که گفتم رو داخل اپلیکیشن‌خودم داشته باشم

    • مصطفی آصفی

      سلام و سلامت باشید. شما باید داده هاتون رو مدل و سپس تو دیتابیس ذخیره کنید. مثلا یک Model نوبت تعریف کنید که یک شماره و یک تاریخ داره و یک کلید خارجی هم به جدول کاربران.

      پی‌نوشت 1- با توجه به نوع سوالتون به نظرم باید این آموزش مقدماتی جنگو (+) رو اول ببینید تا با مفهوم مدل و ذخیره کردن داده های یک مدل آشنا بشید.

      پی‌نوشت 2 – شما با این ایمیلی که پیام دادین فراگیر این دوره نیستین. اگه آموزش رو به روش دیگه ای تهیه کردین توصیه می کنم آموزش ها رو صرفا از هم رویش تهیه بفرمایید.

  33. محمدمتین محمدی (خریدار محصول)

    سلام خسته نباشید استاد، من وقتی کوئری میزنم کار نمیکنه queryser = model.objects.all() آبجکتز رو اینو اینجا نمیخونه و کار نمیکنه!

    • مصطفی آصفی

      سلام به شما. لطفا خطایی که دریافت می کنید رو ارسال کنید.

  34. موسی جعفرزاده (خریدار محصول)

    سلام وقت شما بخیر ببخشید در جنگو چطور میشه با یک پایگاه داده sql server ارتباط برقرار کنیم ؟

  35. Parham

    سلام خوب هستید ببخشید من یه سوال داشتم من میخوام یه بازی با جاوا بسازم اگر سرورو از قبل اجرا کرده باشم میتونم با این دوره شما برنامرو بتونم انلاین کنم دیگه افلاین نباشه؟؟؟ و یه سوال دیگه دارم ازتون اول باید بازیرو بسازم بعد تو این دوره شرکت کنم به نظرتون یا اول دوررو بگذرونم بعدش برنامرو بسازم؟ شما چون خیلی وارد این داستان هستین به نظرم بعترین روش مشاوره از شماس👌

    • مصطفی آصفی

      سلام آقای عباس زاده. اول یه سناریوی کلی از کارکرد بازیتون و نحوه آنلاین بودنش بنویسید. گام بعد شروع به ساخت بازی کنید و گام بعد هم سرور رو بنویسید و آنلاین کنید.
      همین طور برای این که تک زبانی کار کنید توصیه می کنم این آموزش بازی سازی با پایتون رو ببینید شاید کمکتون کنه که بازی و سرور همگی رو با پایتون بسازید.
      ضمنا بازی ساخته شده با پای گیم رو می تونید به کمک این آموزش کیوی و البته ابتکار خودتون به صورت اپ ویندوز و اندروید خروجی بگیرید.

  36. موسی جعفرزاده

    سلام جناب آصفی وقت شما بخیر
    من دوره طراحی وب سایت با پایتون را تمام کردم و ممنون از شما که خیلی روان و خوب مفاهیم را توضیح دادید.
    من قصد دارم برای بک اند و برنامه نویسی سمت سرور بیشتر وقت بزارم و تمرکز کنم، به لطف خدا و زحمات شما دوره های خوب و متنوعی در سایت عالی شما هستش که من کمی سردرگم شدم که باید چه مسیری را طی کنم که به هدفم برسم. تا این لحظه برنامم این بود که بعد از دوره طراحی وب با پایتون دوره api با جنگو را بگذرونم، و البته بعد از کار کردن این دو، دوره کیوی را شروع کنم . ممنون میشم راهنماییم بفرمایید

    • مصطفی آصفی

      سلام و ممنون از لطف شما. خوشحالم که اون آموزش براتون مفید و قابل درک بوده.
      ببینید مسیر ورود به بازار کار تو هر حوزه ای شامل چند گام کلی هست:
      گام 1- دیدن آموزش های اولیه برای یاد گرفتن نحوه پیاده سازی امکانات مختلف
      گام 2- تعریف یک پروژه و تلاش برای پیاده سازی ایده های خود با بسط دانشته های قبلی
      گام 3- دیدن آموزش های تکمیلی برای گرفتن ایده و تکمیل پروژه قبلی یا تعریف پروژه جامع تر
      گام 4- شروع دادن آگهی پذیرش پروژه واقعی در وبسایت های آزادکاری مثل پونیشا و گرفتن کار به تناسب مهارت و رشد تدریجی در دل پروژه ها
      گام 5- متمرکز شدن روی یک بخشی از اون حوزه که اشتیاق شما رو خیلی بیشتر جلب می کنه و بعد رفتن به سراغ شرکت های بزرگ برای استخدام و رشد جهشی.

      با توضیح مسیر آموزش جنگو که در هم رویش طراحی شده در گام اول به صورت پایین هست:
      گام 1 – دیدن آموزش مقدماتی جنگو و دیدن آموزش Django REST (همین صفحه)

      گام 2- تلاش برای حل تمرین پایانی آموزش Django REST و ایجاد یک سیستم API فروشگاهی ساده (بدون درگاه پرداخت) – شما که هدفتون بک اند هست اینجا روی پردازش گرافیکی در کیوی یا محیط دیگه ای نیاز نیست تمرکز کنید. صرفا به سواگر اکتفا کنید.

      گام 3 – دیدن آموزش ساخت وبلاگ حرفه ای و آموزش ساخت شبکه اجتماعی و تمرین اون ها به صورت فشرده. به این نقطه که رسیدید دو مسیر پیش رو دارید. چون می خواید به صورت شخصی اول کسب تجربه کنید و پروژه های کوچیک بگیرید، می تونید روی توسعه وبسایت تمرکز کنید یا اپلیکیشن. اگه بخواهید با جنگو روی توسعه وبسایت تمرکز کنید،

      گام 4 (و شاید 5)
      اینجا دیگه با توجه به توضیحاتی که در مورد فرانت اند در آموزش شبکه اجتماعی دریافت کردید وقتشه که اول یک آموزش مقدماتی HTML و CSS و JavaScript ببینید و بعد آگهی بدید در جاهای مختلف که مثلا توسعه وبسایت ارزان. از بین پیشنهادها اونی که فکر می کنید با کمی تلاش از پسش برمیاید رو بپذیرید و شروع کنید به کار حرفه ای.
      اگر هم قصد ندارید وبسایت توسعه بدین و هدفتون سرورنویسی هست دو کار باید بکنید:‌ اول بگردید ببینید آیا شرکتی هست که کارآموز بپذیره رایگان برید و براشون کارهای حجمی روزانه بخش جنگو و API رو انجام بدین و کم کم کسب تجربه کنید. اگه شرکت مناسبی پیدا کردید که عملا گام 4 و 5 رو به صورت تدریجی دارید طی می کنید و پیش برید. اگه پیدا نکردید باید خودتون ناچار هستید کمی فرانت اند بیشتری یاد بگیرید که بتونید پروژه های کوچیک اشخاص رو به طور کامل براشون بزنید و رزومه رو برای استخدام آماده کنید. شروع کنید به دیدن آموزش React که بتونید API رو سمت وب تجزیه کنید بعد هم React Native برای تجزیه API سمت اندروید و iOS و اون وقت اون سیستم API فروشگاهی گام 2 رو می تونید به یک سیستم فروشگاهی واقعی تبدیل کنید. بعد به وبسایت های کاریابی برید و آگهی بدین که من می تونم براتون فروشگاه بزنم با قیمت مناسب- اگه این مسیر رو تا اینجا اومده باشید، هم می تونید به صورت شخصی کسب درآمد خوبی بکنید هم شما تقریبا یه برنامه نویس فول استک محسوب می شید که می تونه فرانت اند و بک اند رو با هم بفهمه و بخت زیادی برای استخدام در شرکت های متوسط و بعدها در شرکت های بزرگ به عنوان سرپرست گروه دارید.

      این مسیری که براتون ترسیم کردم اگه فشرده روش وقت بگذارید یک سال کار داره. عجله نکنید و صبورانه ریشه هاتون رو قوی کنید.

  37. محمدرضا گوشکی (خریدار محصول)

    سلام و خسته نباشید استاد عزیز یه سوال داشتم محبت کنید راهنماییم کنید
    برای مثال من یه ریکوست میفرستم برای سرور که دو عدد صحیح داخلش هست اونور سمت سرور چطوری میتونم به محتوای این رکوست که دو عدد صحیح هست دسترسی پیدا کنم و یک محاسبه روش انجام بدم؟آیا متدی داره که بشه محتوای ریکوست رو واکشی کرد؟ ممنون میشم راهنماییم کنید

    • مصطفی آصفی

      سلام جناب گوشکی عزیز. می بخشید دیر شد جوابتون. بله ببینید شما وقتی با POST با سرور حرف بزنید می تونید پارامتر بفرستید و اون طرف بگیرید و پردازشش کنید.
      یادتون باشه که شی request در جنگو حاوی این پارامترهاست.

  38. مهدی گلستانی

    خیلی ممنون از پاسخگوییتون !
    ببخشید اگر زیاد سوال میپرسم .
    پس اگر من اپلیکیشنم رو با یونیتی ساخته باشم ،میتونم به کمک این آموزش ها انلاینش کنم، درسته؟؟؟؟

    • مصطفی آصفی

      سلامت باشید. بله شما با سرورهای با زبان های دیگه می تونید به واسطه API صحبت کنید. این مقاله کار با API در یونیتی (+) رو برای مثال ببینید.

  39. مهدی گلستانی

    سلام و خسته نباشید استاد اول از همه خواستم‌ بگم من اموزش طراحی وب سایت با جنگو رو تهیه کردم‌و یاد گرفتم و واقعا فقط میتونم بگم عالی بود و در حال حاضر قصد دارم اموزش این دوره رو تهیه کنم فقط یک سوال داشتم اون هم این که اگر من وب سایتم رو با زبان پایتون و به کمک جنگو نوشته باشم ولی اپلیکیشنم رو با برنامه دیگه ای به غیر از پایتون نوشته باشم مثل یونیتی یا جاوا اسکپریت باز هم با کمک این دوره توانایی انلاین کردن اپلیکیشنم رو دارم؟

    • مصطفی آصفی

      سلام و سلامت باشید. خوشحالم که آموزش جنگو برای شما مفید بوده.
      بله شما می تونید Web API رو در فرانت اندهای مختلف پردازش کنید. در پایان همین دوره بنده مثالی از پردازش API در یک اپلیکیشن اندروید با زبان جاوا می‌زنم.

  40. amir ayat (خریدار محصول)

    سلام استاد با استفاده از کد زیر به عنوان تمرین IsAuthorOrIsAuthenticated ایجاد کردم:

    class IsAuthorOrIsAuthenticated(permissions.BasePermission):

    def has_object_permission(self, request, view, obj):
    if request.method in permissions.SAFE_METHODS:
    return bool(request.user and request.user.is_authenticated)
    return obj.author == request.user

    به طور کلی درست عمل میکنه تنها ایراد اینجاست که در حالت کاربر مهمان همچنان باتن های DELETE و OPTION به صورت غیر فعال بالای صفحه هستن. برای اینکه این ها برداشته بشن چه باید کرد؟؟؟؟

  41. محمد

    سلام استاد خسته نباشید من دوره را ندیدم ولی با دوره های قبلی شما خیلی چیزها یاد گرفتم یه پروژه گرفتم آپ اندرویدهستش؛ سفارش غذا یک رستوران آپ لوکال کار میکنه ولی ایده اصلی اینه که سمت رستوران یه فرانت داشته باشه(وب) که آنلاین باشه اینور کاربر سفارش داد ناتیفیکیشنی سمت سرور بیاد که مثلا یک سفارش تایید و پرداخت شد بره برای پردازش این کارها با رست فریمورک انجام میشه ؟؟

    • مصطفی آصفی

      سلام به شما. بله با ترکیب Django و Django REST میشه پیاده سازی کرد. اتفاقا در پایان این دوره مثالی هم از خوانش API در یک اپ اندروید زدم.
      شما برای مثالی که زدید یک وب اپ جنگو باید بسازید که بشه پنل مدیریت فروشگاهتون. همین طور در قلب این اپ یک سریالایزر (مطابق همین آموزش) باید ایجاد کنید که API لازم رو برای واکشی و گزارش محصولات و … پیاده سازی کنه. همین طور از اپ signal در جنگو استفاده کنید برای شبیه سازی اتصال سوکت و دریافت نوتیفیکیشن آنی در وب اپ.

  42. محمد وجدانی (خریدار محصول)

    سلام استاد خسته نباشید من این دوره apiوتمام دوره های کیوی شمارو خریداری کردم وهمچنین سایت فروشگاهی باجنگو ساخته ام .میخوام این سایت رو توی اندروید و ویندوز و…. استفاده کنم . امروز که دوره apiروتمام کردم چیزی ازش متوجه نشدم (یعنی ای کاش توی اندروید بالا میاوردید یه پروژه).میخواستم بدونم اگه این دوره های کیوی شمارو نگاه کنم میتوم سایتم رو توی اندروید هم بالا بیارم وسایتم رو کامل کنم

    • مصطفی آصفی

      سلام به شما. ببینید اتفاقا بنده در این دوره بعد از تکمیل API وبلاگ، برای نمونه در یک اپلیکیشن اندروید نحوه خوندن API و نمایش در اپ اندروید رو بررسی کردم. درس‌های پایانی رو با دقت ببینید.
      از طرفی همین فرآیند خوندن API رو در پروژه نقشه گردشگری کیوی با خوندن API نقشه ایرانی توضیح دادم (درس یازدهم آموزش پروژه محور کیوی).
      پس شما با ترکیب این دو آموزش باید بتونید دست کم همون API وبلاگ که در این دوره تولید شد رو در یک اپلیکیشن کیوی با صدا زدن API بخونید و نمایش بدید.
      بعد از این که این مرحله رو پیش رفتید باید به عنوان تمرین بنشینید و یک سیستم API برای یک فروشگاه طراحی کنید. مثلا ما یک صفحه نمایش محصول داریم که فلان API رو وقتی صدا زدیم مشخصات نام و توضیح محصول ها از جدول محصولات (مدل محصولات) خونده و نمایش داده میشه. یک API نیاز داریم که وقتی کاربر روی دکمه افزودن به سبد خرید کلیک کرد صدا زده میشه و به ازای اون سرور میاد در جدول سفارش ها به ازای اون user یک سطر ایجاد می کنه و به همین ترتیب.

      پی نوشت: من فکر می کنم شما اول نیازه که آموزش های جنگو رو با دقت ببینید و اجرا کنید. بعد از اون اول یک سایت فروشگاهی با جنگوی سنتی بسازید بعد سراغ سریالایزر برید برای گرفتن API.
      پردازش API در سمت اپلیکیشن اندروید یا ویندوز کار سختی نیست. کار اصلی اون طراحی سمت سرور هست.

  43. saeed

    سلام وقت بخیر استاد . یه سوال داشتم ازاتون این آموزش اتون Django Rest برای Api نویسی تو فلاتر هم کاربرد داره ؟

    • مصطفی آصفی

      سلام به شما. بله ببینید وقتی شما یک سیستم API ایجاد می کنید برای نمایش خروجی اون می تونید فرانت اندهای مختلفی استفاده کنید. ممکنه در React یا Flutter یا به صورت نیتیو در اندروید استودیو و … استفاده کنید.
      در پایان همین دوره هم برای نمونه در یک اپ اندرویدی استفاده کردیم. اما شما ممکنه خروجی Json حاصل رو در یک اپ فلاتری پردازش کنید.
      توصیه می کنم این تک درس رایگان با موضوع « Web API چیست » رو ببینید.

  44. رضا (خریدار محصول)

    سلام عرض میکنم خدمت استاد آصفی عزیز
    اول از همه تشکر میکنم بابت تهیه این آموزش فوق العاده و پیشنهادی هم داشتم :
    من قبلا با sql server کار میکردم و همونجا هم کوئری میزدم(البته خیلی مقدماتی) و به نظرم در برخی جاها کار با خود نرم افزار دیتابیس هم الزامی میشه و همچنین درک انواع روابط بین جداول به صورت عمیق تر (یا حتی استفاده از تریگر و..).پس اگه امکانش هست یه دوره هم در آینده در مورد postgresql یا sqlserver و حتی نمودار ERD برای پیدا کردن منطق مناسب در نحوه ی ارتباط بین جداول در نظر بگیرید.
    سپاس گزارم.

    • مصطفی آصفی

      سلام و سپاس از لطف شما. بله مطلب مهمی اشاره کردید و پیشنهاد درسته. حتما برای مباحث پیشرفته این مطلب یا موردی مشابه برای رفع نیاز در این زمینه تو سرفصل‌ها قرار می‌دم.

  45. parvizi.arman@gmail.com (خریدار محصول)

    میخوام از این طریق یه تشکر ویژه کنم از مدرس گرامی،
    بسیار دوره ی خوبی بود.
    به جرات می تونم بگم اولین دوره ای بود که من دیدم مبحث deploy کردن هم جزء سرفصل هاش بود
    فقط در صورت امکان دوره پیشرفته هم آماده کنید

    • مصطفی آصفی

      سلام. ممنونم که برای ابراز لطفتون وقت گذاشتید. خدا رو شکر که آموزش برای شما مفید بوده.
      در رابطه با جنگو دوره های پیشرفته ای در حال ضبط هستند. از این دسته، آموزش وبلاگ حرفه ای با جنگو (+) تا به حال منتشر شده و انشالله آموزش ساخت شبکه اجتماعی و فروشگاه هم در راه داریم. در این مسیر حتما مباحث پیشرفته تری از اتصال به فرانت اند به ویژه با API و GraphQL رو خواهیم داشت. هم رویش رو در شبکه های اجتماعی دنبال کنید تا به موقع از انتشار اون ها مطلع بشید.

  46. ابوالفضل حسن زاده (خریدار محصول)

    سلام استاد.
    استاد چند وقت پیش من این آموزش جنگو رست رو دریافت و شروع به یادگیری این مبحث کردم اما هرچه که نگاه و تمرین میکردم اصلا منطق کار رو متوجه نشیدم.
    مثلا ما در آموزش وبلاگ حرفه ای برای نظرات نیاز به url دیگری برای پردازش نبود و تو detail پست ها تمامی شرط و شروط ها رو میگذاشتیم یه فرمی رو رندر میکردیم اما در اینجا نمیشه برای هرکاری باید یک url برای پردازش بنویسیم خب بعد اون موقع اون سمت چه جوری میشه ( front-end ) اصلا من گیج شدم استاد.
    اصلا ما از کجا بفهمیم متد get هست یا post. و خیلی موارد دیگر اگر یه توضیح به ما بدهید ممنون میشیم. باسپاس فراوان.

    • مصطفی آصفی

      سلام به شما. ببینید همون طور که در درس های پایانی هم یک نمونه نشون دادم (اندروید)، تولید Web API به این جهت خوبه که شما می تونید یک قلب برای چند فرانت اند (وب، دسکتاپ، اپ) داشته باشید.
      شما در جنگوی سنتی، یک تمپلت می نویسید و اون رو می فرستید برای رندر در مرورگر. حالا اگر بخواهید مثلا همون پروژه وبلاگتون (یا اگر به جای اون یک پروژه فروشگاه باشه) یه اپلیکیشن اندروید داشته باشه باید چه کنید؟ باید از اول اپلکیشن رو هم بنویسید.
      در مورد نوع متد تو مستندات سواگر مشخص هست که توسعه دهنده فرانت اند باید چطور از API استفاده کنه. من فکر می کنم شما باید درس های آخر رو با دقت بیشتر ببینید. سواگر رو هم اونجا توضیح دادم. ببینید و اجرا کنید تا منطق کار رو بهتر درک کنید.
      امروز جنگو بیشتر داره به عنوان قلب سرور استفاده می شه برای تولید API برای حرف زدن با دیتابیس که اون طرف مثلا با ریکت نیتو، اندروید یا iOS خروجی جیسون به شیوه دلخواه نمایش داده بشه.

  47. رهام بادی (خریدار محصول)

    سلام استاد امیدوارم حالتون خوب باشه ، ببخشید من باز مزاحم شدم مشکل در view بود دستتون درد نکنه. ولی استاد هنوز نتونستم کاری کنم که وقتی
    user ، لاگین میکنه فقط همان user بتونه پست ایجاد کند یعنی در قسمت author اسم آن user که لاگین شده باشه ،در واقع نتونستم if را بنویسم
    استاد عکس فایل ها را در اینجا گذاشتم که اگر وقت داشته باشید برسی کنید ممنون .
    https://uupload.ir/files/mnpg_1.png
    https://uupload.ir/files/z736_2.png
    https://uupload.ir/files/37d6_3.png
    https://uupload.ir/files/6jb_4.png
    https://uupload.ir/files/8zae_5.png
    https://uupload.ir/files/kc9x_6.png

  48. رهام بادی (خریدار محصول)

    سلام استاد ببخشید خیلی مزاحم شدم ، استاد من فکر کنم اصلا درست به کار نبردم ، چندین روش را به کار بردم ولی نشد این یکی از نمونه error هایی که گرفتم
    Exception in thread django-main-thread:
    Traceback (most recent call last):
    File “C:\Users\Roham\PycharmProjects\blog_api\venv\lib\site-packages\django\urls\resolvers.py”, line 591, in url_patterns
    iter(patterns)
    TypeError: ‘module’ object is not iterable

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last):
    File “C:\Users\Roham\AppData\Local\Programs\Python\Python36\lib\threading.py”, line 916, in _bootstrap_inner
    self.run()
    File “C:\Users\Roham\AppData\Local\Programs\Python\Python36\lib\threading.py”, line 864, in run
    self._target(*self._args, **self._kwargs)
    File “C:\Users\Roham\PycharmProjects\blog_api\venv\lib\site-packages\django\utils\autoreload.py”, line 53, in wrapper
    fn(*args, **kwargs)
    File “C:\Users\Roham\PycharmProjects\blog_api\venv\lib\site-packages\django\core\management\commands\runserver.py”, line 118, in inner_run
    self.check(display_num_errors=True)
    File “C:\Users\Roham\PycharmProjects\blog_api\venv\lib\site-packages\django\core\management\base.py”, line 396, in check
    databases=databases,
    File “C:\Users\Roham\PycharmProjects\blog_api\venv\lib\site-packages\django\core\checks\registry.py”, line 70, in run_checks
    new_errors = check(app_configs=app_configs, databases=databases)
    File “C:\Users\Roham\PycharmProjects\blog_api\venv\lib\site-packages\django\core\checks\urls.py”, line 13, in check_url_config
    return check_resolver(resolver)
    File “C:\Users\Roham\PycharmProjects\blog_api\venv\lib\site-packages\django\core\checks\urls.py”, line 23, in check_resolver
    return check_method()
    File “C:\Users\Roham\PycharmProjects\blog_api\venv\lib\site-packages\django\urls\resolvers.py”, line 408, in check
    for pattern in self.url_patterns:
    File “C:\Users\Roham\PycharmProjects\blog_api\venv\lib\site-packages\django\utils\functional.py”, line 48, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
    File “C:\Users\Roham\PycharmProjects\blog_api\venv\lib\site-packages\django\urls\resolvers.py”, line 598, in url_patterns
    raise ImproperlyConfigured(msg.format(name=self.urlconf_name)) from e
    django.core.exceptions.ImproperlyConfigured: The included URLconf ‘blog_project.urls’ does not appear to have any patterns in it. If you see valid patterns in the file then the issue is
    probably caused by a circular import.

    • مصطفی آصفی

      سلام. خواهش می کنم. امیدوارم که بتونم کمکی بکنم. ببینید این خطای شما به طور کلی داره به وجود ایراد در بررسی url اشاره می کنه. من دو حالت رو پیشنهاد می کنم با دقت بررسی کنید:

      الف- بر اساس خط های آخر خطا، ممکنه شما blog_project.urls رو ندارید یا اگر دارید، url pattren داخل اون درست نیست.
      اگر ماژول urls.py رو داخل blog_project ندارید اضافه کنید (دقت کنید که urls.py باشه نه url.py) و اگر هم این ماژول رو به درستی دارید عبارت پایین رو داخلش داشته باشید:
      urlpatterns = []
      به املای کلمه urlpatterns دقت کنید شاید چیزی داخل اشتباه نوشته شده.

      ب- ممکنه شما همه موارد بالا رو به درستی دارید اما از نظر منطقی path صحیحی ننوشتید. مثلا دو path داشته باشید که هر دو دارن به یک پیج اشاره می کنن. مثلا دو path با مقدار خالی که هر دو به “/” اشاره می کنن.

      پ- در بخش INSTALLED_APPS ترتیب وارد کردن اپ ها مهمه. اپ ها به ترتیب مورد نظر قرار می گیرن (برای مثال اگر شما بخواهید اپ اختصاصی auth خودتون قبل از auth جنگو پردازش بشه و لاگین ویژه خودتون رو داشته باشید باید اپ خودتون رو بالاتر بیارید. در مورد این پروژه اپ خودتون رو بعد از همه اپ ها بگذارید تا همه کارهای لازم براش انجام بشه.

      باز بررسی کنید موارد بالا رو و نتیجه رو اطلاع بدین.

      در پایان دقت کنید که در پای چارم با کلیک کنار ستون سمت چپ کدها در ویو ها هم می تونید breakpoint ایجاد کنید. گاهی منشا خطا اگه از view باشه، در اون نقطه می تونید با دیباگ کردن خطای اصلی رو پیدا کنید.

  49. رهام بادی (خریدار محصول)

    سلام استاد دستتون درد نکنه بابت راهنمایی ها، فقط مشکلی که دارم این که نمیدونم چجوری دستور if را به کار ببرم چون هرچی مینویسم error میده .ممنون میشم راهنمایی کنید .

    • مصطفی آصفی

      سلام مجدد. خواهش می کنم. لطفا خطایی که دریافت می کنید رو گزارش کنید که بشه بهتر نظر داد.

  50. رهام بادی (خریدار محصول)

    سلام استاد امیدوارم حالتون خوب باشه ، استاد من تمام کار هایی که در قسمت 18 و 19 فرمودید را انجام دادم منتها میخوام یک ویژیگی دیگر در postlist باشد کسانی که میتوانند پست ایجاد کنند فقط بتوانند برای خودشان این کار را انجام دهند ، چون الان کسانی که به postlist دسترسی دارند میتوانند جای کسانی دیگر پست ایجاد کنند ، ولی این مشکل را برای postdetail ندارم .

    • مصطفی آصفی

      سلام به شما. سلامت باشید جناب بادی عزیز همچنین.
      ببینید همون طور که در دقیقه 7 درس 19 توضیح دادم، شما می تونید کاربر درخواست دهنده جاری API رو در سطح دسترسی اختصاصی خودتون داشته باشید:
      request.user
      با این حساب شما کافیه همون طور که در درس های بعد یاد می گیرید اولا این API ایجاد Post رو فقط به کاربر وارد شده اجازشو بدین و ثانیا در لحظه ایجاد Post یک if بگذارید که فقط (دقت کنید) فقط در صورتی کاربر بتونه post رو ایجاد کنه که id منسوب به post مساوی با id خود شخص لاگین شده باشه.

  51. مونا اصغری (خریدار محصول)

    در ادامه دیدگاه قبلی در صورت امکان دوره آموزشی در زمینه تست API در نرم افزار Postman هم تهیه بفرمایید . ممنونم

    • مصطفی آصفی

      انشالله در رابطه با مباحث پیشرفته جنگو و API عنوان‌هایی در دست طراحی هستند. هم رویش رو در شبکه های اجتماعی با شناسه HamRuyesh دنبال بفرمایید، دوستان به محض انتشار در اونجا اطلاع رسانی می کنن.

  52. مونا اصغری (خریدار محصول)

    به جرات میتونم بگم یکی از بهترین آموزشهایی بود که دیدم و باقیمت بسیارررر مناسب
    از ویژگیهای مهم این آموزش بیان شیوا و روان مدرس و همینطور توضیح کامل و عمیق مفاهیم بود که در اکثر آموزشها به این مورد پرداخته نمیشه و فقط از یکسری مفاهیم اسم برده میشه و به همین دلیل خیلی از آموزشها برای ما شاید کاربردی باشه اما درک عمیقی از مکانیزم و ساختار اون شاید نداشته باشیم
    من واقعا ممنونم و خوشحالم که آموزشی در این سطح وجود داره
    میتونم بگم قبلا این مدل آموزش و انتقال مطلب رو فقط در آموزشهای جادی دیده بودم و با کمال علاقه در طول یکروز همه قسمتهارو دیدم
    امیدوارم مطالب آموزشی بیشتری در این حوزه در سایت ببینم

    • مصطفی آصفی

      سلام به شما و ممنونم که برای ابراز نظر و لطفتون وقت گذاشتید. باعث دلگرمیه و امیدوارم که در آینده حرفه ای شما نقشی داشته باشه.

  53. رهام بادی (خریدار محصول)

    سلام استاد امیدوارم حالتون خوب باشه ، استاد در قسمت permission ها،من میخواستم متد postlist را به صورتی که در postdetail انجام دادیم ، انجام بدم یعنی IsAuthorOrReadOnly را با ان اجرا کنم منتها وقتی این کار را انجام دادم و آدرس api/v1 را اجرا میکنم به صورت Allowany میشه ، چطور این مشکل را حل کنم ؟

    • مصطفی آصفی

      سلام به شما. می بخشید چند روزی درگیر بودم جواب شما دیر شد. نمی دونم مشکلتون حل شد یا خیر. به نظر شما باید درس 18 و 19 رو با دقت نگاه کنید. یک جایی ماهیت کارتون با چیزی که به ظاهر دارید تنظیم می کنید متفاوته.

  54. erfanmorsali (خریدار محصول)

    سلام استاد خسته نباشید…میبخشید من به یک مشکلی که خوردم اینه که چه توی swagger و چه توی doc خود رست فریم ورک با متد های GET و DELETE هیچ مشکلی ندارم ولی برای متد های POST و PUT که باید براشون body ست کنیم و پارامتر بفرستیم نمیتونم اینکارو بکنم..در واقع تو همون صفحه ای ک شما نشون دادید تو متد POST فیلدهای مدلتون رو نوشته بود و میتونستید مقدار دهی کنید…ولی واس من نوشته no parameters…تقریبا ۲روزی هست ک درگیر این مشکل هستم و بخاطر همین یک موضوع فقط دوره رو خریدم ک شاید حل شه و نشد…ضمنا من دارم از APIVIEW استفاده میکنم
    ممنون میشم کمکم کنید

    • مصطفی آصفی

      سلام به شما. ببینید در OpenAPI 3 موقع ایجاد یا روزآمدسازی یک کلید برای درج توضیحات اضافه شده به نام requestBody. این رو باید پر کنید. برای دیدن شرح عملکرد و نحوه پر کردن اون برای نمونه این نشانی (+) رو ببینید.

  55. ali samei

    با عرض سلام ببخشید یه سوالی داشتم…
    سایت هایی که چیز خاصی رو پردازش میکنن مثلا یه متن بهش میدیم و اونو ترجمه می کنه چجوری نوشته شده؟ با جنگو میشه این کار رو انجام داد؟ آخه من دوره جنگو شما رو دیدم ولی تو این فریمورک جایی برای پردازش اطلاعات نداشت

    • مصطفی آصفی

      سلام به شما. ببینید شما در view ها هر پردازشی که بخواهید رو می تونید روی اطلاعات دریافتی می تونید اعمال کنید. برای نمونه این آموزش ساخت خبرخوان با جنگو (+) رو ببینید.

  56. اصغر

    سلام استاد خسته نباشید ببخشید من همش دارم کامنت میزارم😂😂🤦‍♂️خواستم بپرسم من یه دوره درباره امنیت در جنگو دیدم که میگفت از pickle ها و YAML ها و JSON سعی کنید استفاده نکنید چون میتونن باعث باگ های امنیتی بشن و الان که این دوره رو رفتم و اینکه API باید از جیسون ها استفاده کنیم مشکلی از لحاظ امنیتی نداره و چیزیو نباید واسش رعایت کنیم و خیالمون راحت باشه؟!
    دوره هم خیلی خوبه از همین ابتدای دوره مثل همه دوره های کاتلین و جنگو و پایتون تسلط و فن بیان خوبی دارید ممنون از سایت عالیتون

    • مصطفی آصفی

      سلام به شما. می بخشید که جوابتون دیر شد.
      خیر جیسون در مورد API از نگاه کلی مشکل ساز نیست و یک رویه استاندارد هست. برای مثال در حال حاضر خروجی API انواع کتابخانه های گوگل مثلا API نقشه گوگل برای دریافت دایرکشن ها یا لوکیشین ها به صورت JSON هست. خروجی مپ دات آی آر هم که در دوره کیوی (+) با هم بررسی کردیم، همین طور بود.

      شما برای جلوگیری از دسترسی همگانی می تونید کاربرتون رو به صورتی که در دوره هم اشاره کردم، اعتیارسنجی (Authenticate) کنید تا مطمئن بشید فقط کاربر ثبت نام کرده با ارسال یک کد اعتبارسنجی می‌تونه داده ها رو ببینه.

      پی‌نوشت: با وجود توضیح بالا باید گفت که در بحث امنیت هیچ وقت نمیشه با اطمینان کامل صحبت کرد. هیچ سایت صددرصد امن نیست. خیلی خوبه که شما همواره نگاهی به محدود کردن دسترسی و امنیت سیستم API خودتون نگاهی داشته باشید.

  57. اصغر

    سلام خسته نباشید استاد فقط یه سوال اگه این دوره رو بخریم بعدش میتونیم واسه هر پروژه ای از رست فول ای پی آی استفاده کنیم و داخلش وارد بشیم و اینکه یه وبلاگ رو از صفر مسازیم یا میتونیم رو همون پروژه قبلی وبلاگ پوستگر اسکیو الی استفاده کنیم استاد اگه دوست داشتیم از وبلاگی که من ساختم با اموزش شما هم دیدن کنید البته اللن از MySQL استفاده میکنم توش https://the-boy.ir
    میخوام اپ اندرویدشم بسازم با این دوره اگه بتونم😂

    • مصطفی آصفی

      سلام به شما. سایتتون رو دیدم. به به آفرین به شما. بسیار شروع خوبیه. به مدیر اینستاگرام هم رویش (+) گفتم که وبسایتتون رو استوری کنن.
      در مورد دوره Django REST اول دعوت می کنم که حتما با دقت فیلم معرفی و توضیحات و سرفصل ها رو بخونید.
      به طور کلی در پایان یک مثال هم از خوندن API در اندروید با والی زده شده. مفاهیم مهم گفته شده اما نحوه مهاجرت یک پروژه موجود و تولید API از اون خیر توضیح داده نشده.
      چون اهل عمل هستید و دست به کار زدید با این آموزش و البته تلاش خودتون کارهای خوبی می تونید بکنید.

  58. tabvar@gmail.com (خریدار محصول)

    سلام و درود.
    آموزش بسیار خوبی بود.
    فقط یه سوال اینکه :
    یه پروژه ای رو با شما ساختیم و با این تفاوت که برای اعتبارسنجی کاربر از پیامک استفاده کردیم (otp) و روی heroku آوردمش بالا. سرویس ها به طور کامل و صحیح در لوکال کار میکنه ولی از سرور heroku دقیقا موقع فراخوانی وب سرویس پیامکی به مشکل میخوره و خروجی زیر رو نمایش میده:

    Application Error

    html,body,iframe {
    margin: 0;
    padding: 0;
    }
    html,body {
    height: 100%;
    overflow: hidden;
    }
    iframe {
    width: 100%;
    height: 100%;
    border: 0;
    }

    دقیقا مثل این : https://stackoverflow.com/questions/49345226/how-to-call-api-from-heroku
    ممنون میشم اگه به چنین مشکلی برخوردید راهنماییم کنید مرسی

    • مصطفی آصفی

      سلام به شما. لطفا لاگ پروژه خودتون رو به صورت فایل متنی* ارسال کنید ( heroku logs –tail )

      * برای ارسال فایل بعد از بارگذاری در یک آپلودسنتر لطفا للینک بارگذاری رو ارسال کنید.

  59. ابوالفضل حسن زاده (خریدار محصول)

    سلام استاد در راستای این اموزش اگر یک اموزش ری اکت هم باشه خیلی عالی میشه چون من هرچی سرچ کردم به جایی نرسید یعنی رسید ولی اون کیفیت رو نداشت و اصلا درست و حسابی توضیح نمیدادند ممنون میشم یک اموزش در این رابطه قرار بدید.

    • مصطفی آصفی

      سلام به شما. بله آموزش یکی از فریمورک‌های فرانت اندا مثل React یا Vue (+) یا فلاتر برای می تونه مکمل خوبی برای این آموزش باشه. یادداشت کردم که انشالله به زودی بتونیم در هم رویش چنین مواردی رو داشته باشیم.

  60. محمدمتین محمدی (خریدار محصول)

    سلام من به یه مشکلی خوردم
    Watching for file changes with StatReloader
    Exception in thread django-main-thread:
    Traceback (most recent call last):
    File “/usr/lib/python3.8/threading.py”, line 932, in _bootstrap_inner
    self.run()
    File “/usr/lib/python3.8/threading.py”, line 870, in run
    self._target(*self._args, **self._kwargs)
    File “/home/matinmat8/Desktop/q/blog_api/blog_venv/lib/python3.8/site-packages/django/utils/autoreload.py”, line 53, in wrapper
    fn(*args, **kwargs)
    File “/home/matinmat8/Desktop/q/blog_api/blog_venv/lib/python3.8/site-packages/django/core/management/commands/runserver.py”, line 110, in inner_run
    autoreload.raise_last_exception()
    File “/home/matinmat8/Desktop/q/blog_api/blog_venv/lib/python3.8/site-packages/django/utils/autoreload.py”, line 76, in raise_last_exception
    raise _exception[1]
    File “/home/matinmat8/Desktop/q/blog_api/blog_venv/lib/python3.8/site-packages/django/core/management/__init__.py”, line 357, in execute
    autoreload.check_errors(django.setup)()
    File “/home/matinmat8/Desktop/q/blog_api/blog_venv/lib/python3.8/site-packages/django/utils/autoreload.py”, line 53, in wrapper
    fn(*args, **kwargs)
    File “/home/matinmat8/Desktop/q/blog_api/blog_venv/lib/python3.8/site-packages/django/__init__.py”, line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
    File “/home/matinmat8/Desktop/q/blog_api/blog_venv/lib/python3.8/site-packages/django/apps/registry.py”, line 91, in populate
    app_config = AppConfig.create(entry)
    File “/home/matinmat8/Desktop/q/blog_api/blog_venv/lib/python3.8/site-packages/django/apps/config.py”, line 90, in create
    module = import_module(entry)
    File “/usr/lib/python3.8/importlib/__init__.py”, line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
    File “”, line 1014, in _gcd_import
    File “”, line 991, in _find_and_load
    File “”, line 973, in _find_and_load_unlocked
    ModuleNotFoundError: No module named ‘rest_framework’

    • مصطفی آصفی

      سلام به شما. خط آخر این خطا داره می گه که django rest رو پیدا نمی کنه. یا فراموش کردید نصب کنید یا فراموش کردید بعد از نصب به INSTALLED_APPS در تنظیمات پروژه اضافه کنید.

  61. محمدمتین محمدی (خریدار محصول)

    وای وای وای وای و وای ……
    شما عالی هستید
    تو قسمت اول یه دید کلی از پروژه میدید و انگیزه
    بعدش هم اینکه عالی عالی عالی توضیح میدید …
    شما فوق العاده اید
    و همچنین با قیمت های فوقالعاده به صرفه ای منتشر پیگنید آموزش ها رو

    مخصوصا این اموزش که عالیه خیلی خیلی هم کاربردی هست

    در یک کلام شما عالی هستید و فوقالعاده پاسخگو
    فوق‌العاده با انصاف هستید به خاطر قیمت ها

    منونم ازتون🙏🙏🙏🙏🙏

    • مصطفی آصفی

      سلام و سپاس از لطف شما.
      باعث خوشحالیه که چنین انرژی خوبی از دیدن این آموزش در شما ایجاد شده. امیدوارم که در زندگی کاری شما اثرگذار باشه.

  62. مهدی فکوری نیا

    سلام خسته نباشید ببخشید یک سوال داشتم . با توضیحاتی ک دادید متوجه این موضوع نشدم. من همه ی اموزش های مربوط به جنگو را دیده ام و پروژه های نمونه را نوشته ام و کامل هستند . دنبال اینم که این پروژه رو توی سرور پیاده کنم و به محیط پروداکشن ببرم و دامنه بهش اختصاص بدم . ایا این اموزش مناسب نیاز من است؟
    ممنون میشم راهنمایییم کنید

  63. amir.asadi13@yahoo.com

    سلام بر استاد آصفی عزیز،بسیار لذت برم از دوره django خیلی عالی اموزش میدید ،
    یک سوال دارم من میخوام که کاربر یک عکس و یا فیلم برای سرور ارسال کنه و در دیتابیس ذخیره بشه و درصورت نیاز از دیتابیس بخونمش ،اموزشی در این باره دارید ،سپاس فراوان

    • مصطفی آصفی

      سلام به شما. در رابطه با ذخیره در دیتابیس به طور کلی یک روش مناسب این هست که شما فایل رو به صورت ByteString که عملا میشه یک متنی حاوی بایت های فایل عکس در دیتابیس ذخیره کنید. و این نه تنها برای عکس که برای فایل به طور کلی صادقه. البته روش های دیگه ای هم هست اما در پایگاه داده های رابطه ای به طور کلی روش ذخیره بایتی روش مناسبیه.
      در مورد آموزش هم بنده بعد از آموزش جنگو (+) و این آموزش Django REST تعدادی آموزش پروژه محور حرفه ای هم شروع کردم که برای نمونه اولین مورد آموزش پروژه محور جنگو (+) برای یک وبلاگ حرفه ای با PostgreSQL هست. دومین مورد یک شبکه اجتماعی هست که با تصویر هم کار خواهیم کرد. هم رویش رو در شبکه اجتماعی دلخواهتون (تلگرام، اینستاگرام، آپارات، روبیکا یا ایتا) با شناسه HamRuyesh دنبال کنید که به موقع مطلع بشید.

  64. Abolfazl Hassanzade (خریدار محصول)

    سلام استاد لطفا اموزش هایی درمورد فرانت اند نویسی و وصل کردنش به api قراربدید ممنون میشم. منظور استفاده از جنگو رست در طراحی سایت. یا حق.

    • مصطفی آصفی

      سلام به شما. به روی چشم. اتفاقا همین روزها ضبط یک آموزش پروژه محور Angular در هم رویش شروع شده.

  65. سعید

    با سلام اين دوره چند ساعت هست

    • مصطفی آصفی

      سلام به شما. حدود ۶ ساعت هست. همچنین سرفصل‌ها رو از انتهای بخش توضیحات بررسی بفرمایید.

  66. جواد (خریدار محصول)

    سلام ممنون از آموزش خوبتون
    سوالی داشتم ممنون میشم جوابمو بدین
    من در جلسه 15 که میخاین خروجی api بگیرین رو دقیقا با شما جلو رفتم اما نهایتا یک اروری از مرورگر گرفتم
    ممکنه راهنماییم کنید چطور درستش باید بکنم ؟
    ارورم اینه :

    (“Creating a ModelSerializer without either the ‘fields’ attribute or the ‘exclude’ attribute has been deprecated since 3.3.0, and is now disallowed. Add an explicit fields = ‘__all__’ to the postserializer serializer.”,)
    Request Method: GET
    Request URL: http://127.0.0.1:8000/api/v1/
    Django Version: 3.0.5
    Exception Type: AssertionError
    Exception Value:
    (“Creating a ModelSerializer without either the ‘fields’ attribute or the ‘exclude’ attribute has been deprecated since 3.3.0, and is now disallowed. Add an explicit fields = ‘__all__’ to the postserializer serializer.”,)

    • مصطفی آصفی

      سلام به شما. با توجه به این که کدتون رو نمی بینم موارد زیر به ذهنم می‌رسه:
      1- متن خطای دریافتی شما می گه که شما فیلدهای مورد سریالایزر رو مشخص نکردین. دقت کنید که عبارت رو به مدل-سریالایزرتون اضافه کرده باشین:
      class Meta:
      model = YourModel
      fields = ‘__all__’
      2- این امکان هم هست که شما دو مدل رو در یک مدل-سریالایزر تعریف کرده باشین. دقت کنید که هر مدل سریالایزر باید یک مدل رو به عهده بگیره.
      3- گاهی هم تعریف فیلدهای مدلتون اگر موارد خاصی رو مد نظر دارید به صورت یک لیست کافی هست
      class Meta:
      model = YourModel
      fields = (‘id’,)

  67. incode.ir (خریدار محصول)

    سلام وقت بخیر
    من این دوره شما رو خرید زدم
    ولی همه جا میگن برای استفاده از api بجای استفاده از rest api از graphql استفاده کنید
    بنظر شما بهتر نبود دوره api رو با graphql بگید
    ممنون میشم در این مورد توضیح دهید

    • مصطفی آصفی

      سلام به شما دوست قدیمی هم رویش؛
      ممنون از پیشنهاد خوب شما. واقعیت اینه که REST API و GraphQL دو مقوله متفاوت هستند. REST یک معماری هست که بایستی به عنوان مبنا با اون آشنا بشه. GraphQL در حقیقت یک زبان کوئری مبتنی بر نود و گراف برای کوئری زدن و فیلتر کردن داده‌هایی هست که قراره API برگردونه و امروز می‌بینیم که GraphQL هم به صورت ترکیبی یا پوشاننده در کنار Django REST Framework قرار بگیره و هم به صورت مستقل در قالب کتابخانه Graphene (+).
      امیدوارم امسال آموزشی در این باره در هم رویش داشته باشیم که هم مستقل و هم به عنوان مکمل این آموزش Django REST قابل استفاده باشه.

  68. komakkon2012 (خریدار محصول)

    سلام و وقت بخیر – امروز آموزش رو به پایان رسوندم و یک بار هم کد ها رو نوشتم – مدل آموزش مبحثی به نظرم مفید تر و جذاب تره – مثلا منی که با جنگو آشنایی داشتم وکار کردم برام خیلی مفید تر بود که همون اول رفتید سراغ django-rest و دوباره تکرار مباحث اولیه جنگو رو نکردید.کیفیت بیان مطالب هم بسیار راضی کننده بود. فقط چند نکته رو میخواستم بیان کنم.
    1- برای اسکریپت ها پایتونی که مینویسیم (اعم از AI و IP) چه جوری باید برای اجرا در وب سروها و api گرفتن از اون ها کار کنیم؟خیلی خوب میشد مثل همین دوره که پیشفرض رو گذاشتید که جنگو بلدیم – دوره ای رو تدوین کنید با پیشفرض این که مثلا AI و IP بلدیم و میخوایم براشون وب اپلیکیشن مثلا درست کنیم.

    2- الان شما دوره های جنگو و کیوی و api رو برگزار کردید . خیلی خوب میشه یک دوره پروژه محور برگزار کنید با فرض اینه که دانشجو پیشنیاز ها رو بلده و یک پروژه رو از اول برای وب و موبایل آموزش بدید- چون اینگونه آموزش های پروژه محور خیلی دید بهتری برای انجام پروژه های واقعی میده.

    • مصطفی آصفی

      سلام به شما.
      ممنون که برای فرستادن دیدگاهتون وقت گذاشتید.
      هر دو پیشنهادتون به جاست و اتفاقا روی این موضوع برنامه ریزی‌هایی هم برای بهار ۹۹ شده.
      در مورد سوالتون باید بگم که محل نوشتن منطق برنامه (Business Logic) به معماری و الگوی طراحی مورد استفاده بستگی داره.
      گاهی ممکنه با توجه به معماری اپ شما منطق رو در views.py و گاهی در serializers.py -جایی که قراره داده‌ها از JASON به آبجکت پایتونی و برعکس تبدیل بشن- قرار بدین.
      مثلا این مقاله (+) نمونه‌ای از این حالت هست.

  69. مرتضی روستایی

    سلام استاد ممنون از توضیحاتتون
    خیلی لطف کردید
    ببخشید که خیلی سوال میکنم
    فقط با عرض پوزش یک سوال دیگه داشتم اینه که در برنامه شما هستش که یک front مستقل را با backend حرفه ای با جنگو و پایتون در واقع مثلا یک سایت فروشگاهی طراحی شده حالا آنچه که برای بک اند آن نیاز هست را کار کنیم
    ممنون از توضیحات شما

    • مصطفی آصفی

      سلام مجدد، نه اختیار دارید، خوشحال میشم اگه زمان بهم اجازه بده تا حد توانم به شما و دیگر عزیزان کمک کنم.
      در رابطه با موضوعی که گفتین اگر منظورتون یک آموزش پروژه محور برای ساخت یک وبسایت فروشگاهی هست، بله انشالله برای بهار ۹۹ برنامه ریزی می کنیم.

  70. مرتضی روستایی

    سلام استاد
    مظورم از خطا همون سوتالاتی هستش که از تون پرسیدم
    خدمتتون عرض کردم که front سایت را با html , css ساختم حالا میخواهم با جنگو و پایتون back end سایت رو بزنم
    و از بانک اطلاعاتی Sqlserver برای این منظور استفاده کنم مشکل من اینه که دچار سردر گمی شده ام
    استاد امکان دارد که من شما را حضوری ببینم و از تون سوالات م رو بپرسم تا بتونم این پروژه ام را تکمیل کنم یا مثلا شما یک ویدئو تکمیلی بگیرید که طراح سایت front سایت را ساخته حالا نحوه اتصال refrence دادن به جنگو و پایتون و پایتون به html و بک اند سایت و تعریف کلاس ها و اتصال به پایکاه داده sql server اگر محبت کنید خیلی خوب میشه و نه تنها من بلکه بقیه دانشجویان هم هم وارد بارار کار میشوند و هم از این سردر گمی خارج میشوند چون برای چندتا شرکت که صحبت کردم از من این رو خواستن و با دوستان backend سایت نظرشون همین بود من خیلی در ایترنت سرچ کردم متاسفانه منبع کاملی وجود نداشت حتی سایت های خارجی
    اگر محبت کنید و به طریق پروژه محور بک اند سایت با جنگو و پایتون چندتا ویدئو تکمیلی بزار ید واقعا ممنون میشم
    متشکرم از وقتی که برای من گذاشتید

    • مصطفی آصفی

      سلام به شما. در رابطه با فرانت اند سایت در دوره توضیح دادم. در دوره ما تمپلت html رو با هم ساختیم. در فصل سوم هم استفاده از بوت استرپ برای استفاده از تمپلت های آماده اون صحبت کردم. اگر منظورتون این هست که فرانت رو کاملا مستقل بخواهید بزنید مثلا با React یا Vue و … در این صورت بک اند رو باید با جنگو و Django REST بزنید و بعد API تولید شده رو به فرانت اند متصل کنید که در آموزش Django REST (+) توضیح داده شده و یک نمونه هم با فرض این که فرانت اند اپ اندروید باشه اونجا کار کردم.
      برای استفاده از SQL Server باید pyodbc رو نصب کنید. بعد با استفاده از pip کتابخانه django-mssql-backend رو نصب کنید. نهایتا تنظیم موتور بک سایت رو به صورت زیر در فایل settings تنظیم کنید
      ‘ENGINE’: ‘sql_server.pyodbc’
      کلیدواژه های کتابخانه بالا رو باز بزنید مستندات بیشتری پیدا می کنید در این زمینه.

  71. مرتضی روستایی

    سلام استاد
    استاد فایلی که براتو ارسال کردم و حاوی لینک پروژه من بود داخل پروژه من یک front سایت دو صفحه ای با html , css طراحی کردم و دارم با آموزش جنگو شما پیش میروم و الان خدا روشکر در قسمت های آخر هستم
    از شما یک راهنمایی میخواستم اگر محبت کنید و من از این سردرگمی دربیام لطف برزگی در حق من انجام داده اید
    استاد اگر فایل پروژ من رو نگاه کنید من میخوام بک اند این سایت را با جنگو و پایتون بزنم
    حالا سوال اول من اگر بخوام بانک اطلاعاتی خودم را با sql server چیکار باید انجام بدم و ایکه بخش چت آلاین و درگاه پرداخت سایت داخل ای پکیج Django REST برای تولید API با جنگو هست
    الانم من واقعا سر در گم هستم باید چه کار انجام بدم که بتونم یک back سایت با پایتون و جنگو بزنم
    لطفا من را راهنمایی چه آموزش هایی رو بگیرم
    ممون از شما

    • مصطفی آصفی

      سلام دوست عزیزم. بله دریافت کردم ایمیلتون رو. امروز عصر حتما بررسی می کنم و لینک‌های راهنمایی مناسب رو براتون می‌فرستم.
      یک موضوعی هم به طور کلی خدمتتون عرض کنم واقعیت اینه که هیچ آموزشی نمیتونه تمام چالش های ممکن در یک پروژه حرفه ای رو در خودش جا بده. شما باید از آموزش‌ها برای پیدا کردن قلق کار استفاده کنید و بعد خودتون دست به کار بزنید برای موارد بیشتر.
      در آموزشی که توی این صفحه ملاحظه می کنید (آموزش تولید API)، مبانی موضوع و همینطور پیاده‌سازی به صورت عمیق توضیح داده شده اما موضوعاتی مثل چت آنلاین یا اتصال به درگاه پرداخت طبیعتاً داخل بسته نیست تا موضوع بیش از حد طولانی نباشه.
      حالتی که شما الان تجربه می‌کنید کاملاً طبیعی هست کلاً برنامه نویسی حرفه‌ای یعنی هر روز برخورد با یک چالش تازه که چیزی از اون نمیدونیم و بعد چندین روز یا حتی چند هفته تلاش برای پیدا کردن قلق اون. و باز موضوع بعدی و بعدی.
      آموزش‌ برای یاد دادن اصول کار هست و همه هنر مدرس این باید باشه که یک دید عمیق ایجاد کنه و حتی مهم تر این که فراگیر رو به خوداتکایی ترغیب کنه.

  72. jesadax

    استاد این آموزش های جنگو رو قطره ای تزریق نکن همه را باهم در قالب یک بسته جنگو بده واقعا قیمتش داره میره بالا!!!

    • مصطفی آصفی

      سلام به شما. دوست عزیزم مطمئن باشید که انتشار بسته ها به صورت تخصصی و جداگانه برای بالا بردن بازدهی خود شماست.
      هر مبحث رو تحت یک بسته جداگانه جمع بندی می کنم تا مدت زمان هر بسته تا حد ممکن طولانی نباشه و بتونید تا آخر دنبال کنید (به تجربه بنده،‌ 90 درصد فراگیران نمی تونن بسته‌های طولانی رو تا پایان دنبال کنند و نیمه راه دلزده میشن).
      گذشته از این، شاید دوستانی باشن که یک بحث (مثلا طراحی سایت با جنگو)‌ رو بلد باشن و فقط به بحث تولید API با جنگو نیاز داشته باشند. در این صورت آیا باید یک بسته جامع برای یک بحث تهیه کنند؟

      امیدوارم که دوره برای شما و همه دوستان مفید باشه.

  73. رضا

    پروژه این دوره چیه ؟؟
    چند ساعت هست
    توی قسمت عضویت یعنی ثبت نام کاربر با شماره موبایل بدون ایمیل رو میگید و همچنین لاگین و فراموشی رمز عبور و ارسال کد فعال سازی رو با شماره موبایل میگید ؟

    • مصطفی آصفی

      سلام به شما.
      از شما و دوستان دیگه دعوت می‌کنم که فیلم و سرفصل‌های دوره رو با دقت بررسی بفرمایید.
      در این دوره همون طور که در فیلم هم توضیح دادم، یک سیستم وبلاگ ساده رو با جنگو ایجاد می‌کنیم.
      بعد با سیستم Django REST از این پروژه API تولید می‌کنیم.
      سطح دسترسی رو محدود و سیستم ثبت نام با تولید توکن رو یاد می گیریم و بعد از مستندسازی با سواگر، به سرور آنلاین می‌فرستیم.
      بنده همه تلاشم اینه که دوره‌ها هر چه کوتاه‌تر بشن تا فراگیر بتونه همه دوره رو با دقت طی کنه. مواردی مثل ثبت نام پیامکی و اتصال به درگاه رو در برنامه دارم که انشالله به صورت جداگانه‌ منتشر کنم.

دیدگاه خود را بنویسید

نظرات کاربران در خصوص دوره 

73 دیدگاه برای آموزش Django REST Framework پروژه محور ــ ساخت API با جنگو

  1. کریمی

    با سلام
    من میخواستم بدونم
    این آموزش میتونه کمک کنه که من ی پروژه ای دارم که ی سری api از ی جایی بگیریم و در دیتا بیس ذخیر کنیم و با جنگو هم وب نمایش بدیم هم api بدیم که بقیه اپ ها استفاده کنن

    • مصطفی آصفی

      سلام وقت بخیر. ما تو این آموزش ساخت api با جنگو (بخش دوم سوالتون) رو هدف گرفتیم. لطفا فیلم معرفی و سرفصل ها رو بررسی بفرمایید.

      پی‌نوشت ۱: بعد از دیدن این آموزش پیشنهاد می کنم آموزش ساخت فروشگاه با جنگو و ری اکت (+) رو ببینید که هم یک استفاده کاربردی شرح داده شده و هم در اون کار با api بیرونی (درگاه پرداخت) و هم ارائه api به بیرون وجود داره.

      پی‌نوشت ۲: برای تمرین این آموزش حتما با نسخه ای تو خود آموزش نصب کردم پیش برید. بعد از پایان کار و یادگیری اصول می تونید به نسخه جدیدتر مهاجرت کنید.

  2. فرهاد

    سلام من اگر بخوام دیتا از API با جنگو بخونم و در دیتابیس ذخیر کنم چطوری این کار رو بکنم؟

    • مصطفی آصفی

      سلام به شما. برای خوندن اطلاعات می تونید از کتابخونه request در پایتون استفاده کنید. بعد از واکشی اطلاعات باید جیسون رو تجزیه کنید و اطلاعات مورد نیازتون رو در قالب جدولی که تو جنگو طراحی کردید از طریق view تو جنگو ثبت کنید.

      اما اگه منظورتون ثبت داده های ارسالی تو دیتابیس از طریق جنگو رست هست، بعد از تماشای این بسته و آشنایی کلی با Django REST توصیه می کنم این دوره تکمیلی و پروژه محور برای ساخت فروشگاه با جنگو رست و ری اکت (+) رو بررسی کنید.

  3. sambepour (خریدار محصول)

    از لحاط تئوری و رسوندن مفهوم عالی بود من با اینکه چندتا آموزش در این مورد خریده بودم ولی به این صورت توضیح داده نشده بود و فقط کد نویسی کرده بودند فن بیان استاد هم عالی و شیوا هستش یک مشلکی که بود آموزش قدیمی بود ورژن پکیجها قدیمی بودن وقتی با ورژن جدید کار می کردیم با هم مچ نبودن که این مشکل شیرین بود چون باید سرچ می کردیم تا مشکل حل می شد مثلا allauth0.57.0 با rest-auth مچ نمیشد باید allauth0.54.0 رو نصب می کردیم و… اصلی ترین مشکل که اگه انتقاد هم می پذیرین و جواب می دین ما آموزش جنگو رست فریم ورک رو خریدیم یعنی میخوایم رست فریم ورک رو یاد بگیریم چرا باید فرستادن api از یه وب سایت به سرور رو آموزش ندین بجاش با اپلیکیشن موبایل رو آموزش بدین؟؟؟؟؟؟؟ الان تو خیلی از سایت ها که طراحی میشه دیتا تو یک سرور دیگه هستش و ما سایتی که می سازیم باید api بفرستیم به اون سرور و دیتاها رو بگیریم. چرا جنگو رست فقط طرف سرور رو آموزش دادن ولی جنگو رست فریم ورک طرف کلاینت رو نه؟؟؟؟؟؟؟؟ به نظرم این کارتون باعث شده آموزشتون کامل نباشه و نصف جنگو رست رو آموزش داده باشین

    • مصطفی آصفی

      سلام و سپاس از این که برای بیان نظرتون به صورت کامل وقت گذاشتین و لطفی که به بنده داشتین. استفاده از جنگو رست سمت فرانت اند که به نوعی ورود به برنامه نویسی فول استک محسوب میشه چون مفصل بود تو این آموزش ساخت فروشگاه با جنگو و ری اکت (+) آموزش داده شده که در واقع آموزشی که تهیه کردین پیشنیاز این دوره هست.
      لطفا از فصل ۱ تماشا کنید و همون طور که تو این آموزش هم تجربه کردین چون کتابخونه ها به سرعت به روز میشن دقت کنید که در اجرای اون آموزش هم از نسخه های مشابه مدرس استفاده کنید.

  4. armthr.7 (خریدار محصول)

    استاد خسته نباشید
    میخواستم به یوزرا اصلیم در واقع همین یوزر => admin/auth/user/ چندتا فیلد اضافه کنم مثلا در کنار نام و نام خانوادگیش کد ملیش هم اضافه بشه باید چیکار کنم؟

  5. milad67r@gmail.com (خریدار محصول)

    سلام و خسته نباشید
    ببخشید در قسمت 8 آموزش وفتی که تو ترمینال python manage.py makemigrations posts میزنم این پیام میاد
    Traceback (most recent call last):
    File “C:\Users\m.ramezanpour\PycharmProjects\bloge_app\manage.py”, line 22, in
    main()
    File “C:\Users\m.ramezanpour\PycharmProjects\bloge_app\manage.py”, line 18, in main
    execute_from_command_line(sys.argv)
    File “C:\Users\m.ramezanpour\PycharmProjects\bloge_app\venv\Lib\site-packages\django\core\management\__init__.py”, line 442, in execute_from_command_line
    utility.execute()
    File “C:\Users\m.ramezanpour\PycharmProjects\bloge_app\venv\Lib\site-packages\django\core\management\__init__.py”, line 416, in execute
    django.setup()
    File “C:\Users\m.ramezanpour\PycharmProjects\bloge_app\venv\Lib\site-packages\django\__init__.py”, line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
    File “C:\Users\m.ramezanpour\PycharmProjects\bloge_app\venv\Lib\site-packages\django\apps\registry.py”, line 91, in populate
    app_config = AppConfig.create(entry)
    ^^^^^^^^^^^^^^^^^^^^^^^
    File “C:\Users\m.ramezanpour\PycharmProjects\bloge_app\venv\Lib\site-packages\django\apps\config.py”, line 178, in create
    mod = import_module(mod_path)
    ^^^^^^^^^^^^^^^^^^^^^^^
    File “C:\Users\m.ramezanpour\AppData\Local\Programs\Python\Python311\Lib\importlib\__init__.py”, line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File “”, line 1206, in _gcd_import
    File “”, line 1178, in _find_and_load
    File “”, line 1128, in _find_and_load_unlocked
    File “”, line 241, in _call_with_frames_removed
    File “”, line 1206, in _gcd_import
    File “”, line 1178, in _find_and_load
    File “”, line 1142, in _find_and_load_unlocked
    ModuleNotFoundError: No module named ‘posts’

    • مصطفی آصفی

      سلام و وقت بخیر. ببینید خطای اصلی خط آخر نوشته شده :
      ModuleNotFoundError: No module named ‘posts’
      شما احتمالا یک جایی تو نوشتن کد اشتباه دارین (شاید یه خطا تو مراحل یا یه خطای تایپی) و داره به شما می گه ماژولی به نام posts پیدا نمی کنم.

  6. milad67r@gmail.com

    سلام استاد عزیز

    خسته نباشید من این دوره رو خریداری کردم برای حل مشکل API

    ببخشید من می خوام اطلاعات رو از سامانه My Credit API و آدرس https://app.ics24.ir/Connect/Token بخونم و در خروجی نمایش بدم یا خروجی جیسون بگیرم

  7. Ho33ein (خریدار محصول)

    سلام خسته نباشید آقای آصفی
    وقتی از ای پی آی /rest_auth/user/ استفاده میکنم که مشخصات کاربر جاری رو به من نشون بده body این رو برمیگردونه:
    {“detail”:”Authentication credentials were not provided.”}

    • مصطفی آصفی

      سلام به شما. خطا داره میگه که مجوز دسترسی ندارید. چون این ممکنه علت های مختلفی داشته باشه که باید یکی یکی بررسی کنید، بهترین کار گوگل کردن متن خطاتون هست. مثلا ممکنه دسترسی پیش فرض رو تعریف نکرده باشین که اگه گوگل کنید تو استک اورفلو مشابه این لینک (+) می تونید راهکار رو بررسی و آزمایش کنید.

  8. فاطمه خورشیدی (خریدار محصول)

    دوره در حد مبتدی و بسیار ناقص بود

    • مصطفی آصفی

      سلام. ریز سرفصل ها و فیلم معرفی رو پیش از تهیه با دقت بررسی نکردید. چه چیزی داخل سرفصل ها نوشته شده که گفته نشده؟

      پی‌نوشت: ما یک سیر کامل رو برای مخاطب مبتدی طی کردیم. طبیعتا این بحث جای کار بسیار داره که بعد از طی این دوره کاربر می تونه بخش به بخش از روی آموزش های تکمیلی طی کنه. برای مثال آموزش ساخت فروشگاه با جنگو رست و ری اکت (+) حاوی تعدادی از این نکته‌هاست.

  9. نازیلا کارکن (خریدار محصول)

    Nazila, [12/12/22 2:49 PM]
    با سلام.
    من در موقع اجرای پروژه با خطای زیر روبرو میشم و حتی با تست روش جایگزین که فرمودید(https://stackoverflow.com/questions/70319606/importerror-cannot-import-name-url-from-django-conf-urls-after-upgrading-to/70319607#70319607) باز هم مشکل برطرف نشد. ممنون میشم راهنمایی بفرمایید.

    خطا:
    Exception in thread django-main-thread:
    Traceback (most recent call last):
    File “/usr/lib/python3.9/threading.py”, line 973, in _bootstrap_inner
    self.run()
    File “/usr/lib/python3.9/threading.py”, line 910, in run
    self._target(*self._args, **self._kwargs)
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/django/utils/autoreload.py”, line 64, in wrapper
    fn(*args, **kwargs)
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/django/core/management/commands/runserver.py”, line 134, in inner_run
    self.check(display_num_errors=True)
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/django/core/management/base.py”, line 475, in check
    all_issues = checks.run_checks(
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/django/core/checks/registry.py”, line 88, in run_checks
    new_errors = check(app_configs=app_configs, databases=databases)
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/django/core/checks/urls.py”, line 14, in check_url_config
    return check_resolver(resolver)
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/django/core/checks/urls.py”, line 24, in check_resolver
    return check_method()
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/django/urls/resolvers.py”, line 494, in check
    for pattern in self.url_patterns:
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/django/utils/functional.py”, line 57, in get
    res = instance.dict[self.name] = self.func(instance)
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/django/urls/resolvers.py”, line 715, in url_patterns
    patterns = getattr(self.urlconf_module, “urlpatterns”, self.urlconf_module)
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/django/utils/functional.py”, line 57, in get
    res = instance.dict[self.name] = self.func(instance)
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/django/urls/resolvers.py”, line 708, in urlconf_module
    return import_module(self.urlconf_name)
    File “/usr/lib/python3.9/importlib/__init__.py”, line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
    File “”, line 1030, in _gcd_import
    File “”, line 1007, in _find_and_load
    File “”, line 986, in _find_and_load_unlocked
    File “”, line 680, in _load_unlocked
    File “”, line 850, in exec_module
    File “”, line 228, in _call_with_frames_removed
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/blog_api/urls.py”, line 24, in
    path(‘api/v1/rest-auth/’, include(‘rest_auth.urls’)),
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/django/urls/conf.py”, line 38, in include
    urlconf_module = import_module(urlconf_module)
    File “/usr/lib/python3.9/importlib/__init__.py”, line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
    File “”, line 1030, in _gcd_import
    File “”, line 1007, in _find_and_load
    File “”, line 986, in _find_and_load_unlocked
    File “”, line 680, in _load_unlocked
    File “”, line 850, in exec_module

    Nazila, [12/12/22 2:49 PM]
    File “”, line 228, in _call_with_frames_removed
    File “/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/rest_auth/urls.py”, line 1, in
    from django.conf.urls import url
    ImportError: cannot import name ‘url’ from ‘django.conf.urls’ (/home/isatis/Documents/Rest__Project/Test1/blog_api/venv/lib/python3.9/site-packages/django/conf/urls/__init__.py)

    • مصطفی آصفی

      سلام. لطفا نسخه جنگو مورد استفاده خودتون رو مطابق فایل requirements.txt تنظیم کنید:
      Django==3.0.3
      کافیه که بعد از ساخت محیط مجازی فایل بالا رو از سورس کدهایی که پیوست کردم کپی و تو پوشه پروژه خودتون کپی و بعد دستور
      pip install -r requirements.txt
      رو اجرا کنید.
      پایتون هم ترجیحا مشابه آموزش (گمانم ۳.۷) برای ساخت venv استفاده کنید تا شرایطتون کاملا مشابه آموزش باشه. کافیه نسخه پایتون مورد نظر رو نصب و موقتا تو PATH ویندوز بالای همه پایتون ها بگذارینش. بعد یک محیط مجازی با اون نسخه بسازید. بعد از اون هر وقت خواستین یه پروژه پایتون با اون نسخه بسازین، کافیه این محیط مجازی رو فعال کنید و بعد از داخل اون یک محیط مجازی جدید بسازید (کپی کنید انگار).

      پی‌نوشت: چون کدتون رو نمی بینم احتمالا داره که این مشکل به دلیل استفاده از جنگو ۴ باشه و منسوخ شدن چیزی. بایستی خطایی که دریافت می کنید و تغییرات کدتون نسبت به آموزش رو دقیق تر بیان کنید که بشه بهتر نظر داد.

  10. مهدی شلاهی (خریدار محصول)

    سلام . استاد آصفی امکانش هست ساخت شبکه اجتماعی با جنگو رست رو آموزش بدین؟
    ساخت شبکه اجتماعی با جنگو رست یسری نکات داره مثل سریالایزرهای تودرتو که توی سیستم فالو آنفالو بکارمیاد و … که حتی کسایی که این دوره ساخت وبلاگ با جنگو رست رو پشت سرگذاشته باشن بازم توی اونجا به مشکل میخورن
    ممنون میشم همون دوره شبکه اجتماعی که با جنگو آموزش دادینو با جنگو رستم آموزش بدین
    مرسی

    • مصطفی آصفی

      سلام وقتتون بخیر. پیشنهاد جالبیه. راستش تو این بازه زمانی روی آموزش یادگیری ماشین (+) متمرکز هستم ولی شما یا دوستان دیگه می تونید با ارسال این کاربرگ تدریس در هم رویش (+) مدرس/کارآموز هم رویش برای این دوره بشین (موقع تکمیل فرم تو بخش اطلاعات آموزش هر دو فیلد توضیحات و سرفصل رو بنویسید «کارآموزی»). در این صورت تو گروه های هم فکری هم رویش عضو میشین و ضمن دریافت مشاوره برای تحقیق، نتیجه تحقیقات خودتون رو به صورت آموزش در هم رویش منتشر هم می کنین. ضمنا تو یوتیوب این لیست پخش شبیه سازی اینستاگرام با جنگو رست و ری اکت (+) رو هم بررسی کنید. می تونه مبنای کارتون باشه.

  11. golshan.zahra500@gmail.com

    سلام . در این دوره تست نویس api ها هم آموزش داده شده ؟

    • مصطفی آصفی

      سلام به شما. تست نویسی به شکل ساده برای پروژه جنگو انجام شده ولی تست نویسی حرفه ای API خیر. ریز جزییات دوره رو بعد از تماشای فیلم معرفی تو بخش «سرفصل‌ها» در انتهای توضیحات مطالعه کنید.

  12. فاطمه یوسفی (خریدار محصول)

    سلام وقت بخیر استاد،
    مرسی از اموزشای عالیتون😍😍، استاد میشه لطفا ی دوره اموزشی هم برای طراحی سایت صرافی مث نوبیتکس با django، بذارین لطفا؟ من خیلی دوس دارم یه همچین سایتی ب عنوان نمونه کار درست کنم ولی راستش بلد نیستم🙁

    • مصطفی آصفی

      سلام به شما خانم یوسفی و ممنون از لطف شما. خواشحالم که براتون مفید بودن. موضوع جالبیه یادداشت کردم و حتما بهش فکر می کنم. البته شما با جستجوی عبارت پایین در گوگل و یوتیوب باید بتونید نقطه های شروعی برای خودتون پیدا کنید. اگه آموزش های بنده رو با دقت دیده باشید الان باید بتونید آموزش های خارجی رو هم استفاده کنید چون قاعدتا مبانی رو می شناسید.
      create broker website django

  13. محمد وحید کوه کن (خریدار محصول)

    البته وقتی از پنل ادمین میخوام عضوی رو اضافه کنم مشکلی نداره هم regexvalidation ی که نوشتم و ارورش کار میکنه هم unique بودنش.. اما وقتی با api امتحان میکنم این خطا برمیگرده

    • مصطفی آصفی

      دنبال توضیح پایین لطفا این لینک (+) رو هم مطالعه کنید و ضمنا یک signal هم شبیه درس ۴۷ ساخت اینستاگرام با جنگو (+) بگذارین که از پنل هم که آپدیت کردین User یکسان به روز بشه. اینجا سندر تو سیگنال مدل User میشه.

  14. محمد وحید کوه کن (خریدار محصول)

    سلام استاد ممنون با راهنمایی شما هر دو مشکل حل شد و همینطور با الهام از همون درس هفتم فصل اول ساخت اینستاگرام کلاس AbstractUser هم overwrite کردم و فیلم شماره تلفن هم اضافه کردم که با موفقیت به دیتابیس اضافه شد اما مشکلی داره که موقع ثبت یوزر این ارور رو برمی گردونه:
    django.db.utils.IntegrityError: UNIQUE constraint failed: account_customuser.phonenumber
    (پارامتر unique رو هم برای فیلد ست کردم که علاوه بر یوزرنیم و ایمیل شماره تفلن هم یونیک باشه) هرچقدر سرچ کردم جواب درستی برای حل مشکل پیدا نکردم. چطور میتونم این مشکل رو حل کنم

    • مصطفی آصفی

      سلام به شما و پوزش از تاخیر. خیلی خوبه که با تلاش و تحقیق دارید کارتون رو شخصی می کنید. ببینید این خطایی که گرفتین با توضیحی که دادین احتمالا به خاطر وضعیت قبلی و فعلی دیتابیسه. شما اولین بار که migrate کردین خب فیلد phone رو نداشتین. حالا این فیلد رو اضافه کردین و UNIQUE هم گذاشتین. این یعنی جنگو باید این فیلد رو تو تموم سطرها ایجاد کنه و مراقب باشه که مقدارش تکراری نباشه. بنابراین مثلا اگه شما مقدار پیش فرض این فیلد رو گذاشته باشین 0 یا مثلا اگه امکان empty بودن رو بدین این تناقض داره. یک راهش اینه که نقدا برای تمام کاربرایی که از قبل این رو ندارن فعلا مقدار پیش فرض phone رو برابر id خودشون بگذارین که شرط unique بودن لغو نشه. بعد کم کم این رو که از کاربرا (با نشون دادن دیالوگ تلفن وارد کنید) گرفتین جایگزین کنید.

  15. hossein.ahmadi.b@gmail.com (خریدار محصول)

    سلام و خسته نباشید خدمت استاد گرامی
    در بخش لوگین توسط ای پی ای فرمودید کد زیر رو در url وارد کنیم
    path(‘api/v1/rest-auth/’, include(‘rest_auth.urls’)),
    ولی این کد با اینکه پیکجش هم نصب هست این خطا رو میده و دیگه سرور ران نمیشه
    ImportError: cannot import name ‘url’ from ‘django.conf.urls’

    • مصطفی آصفی

      سلام و پوزش از تاخیر. با فرض این که کد رو مثل من پیش رفته باشین و خطای کد نداشته باشین این خطا احتمالا به دلیل اینه که ما آموزش رو با جنگو ۲ پیش بردیم اما شما دارین از جنگو ۳ یا ۴ استفاده می کنید. این نشانی (+) رو برای نمونه ببینید و لطفا نتیجه رو اعلام کنید که اگه کد توی اون درس نیاز به روزآمدسازی داره در کل ویرایش لازم رو انجام بدم.

  16. گلرو سلطانی (خریدار محصول)

    سلام خدمت استاد عاصفی عزیز ببخشید من مطابق با شما عمل کردم در پروژه خودم و در حال حاظر من فقط یک سوال داشتم اول این که راهی وجود داره تا کاری بکنم که پست هایی که یک کاربر میگذاره توی دیتا بیس خود کاربر سیو بشه؟ یعنی مثل اطلاعات یوسر نیم و پسورد که کاربر اگر پسورد رو بزنه با یوسرنیم اون اطلاعات پسورد و یوسرنیم و ایدی برای کاربر بالا میاد بخشی هم داشته باشه که بتونه توی اون پست های خودشو توی دیتابیس خودش بدون نیاز به این که ایدی پست رو در اخر ادرس قرار بدیم ببینه؟

  17. محمد وحید کوه کن

    سلام استاد عرض خسته نباشید تشکر بابت دوره خوبتون
    من هر دو دوره جنگو از صفر و django rest framework رو دیدم و سعی دارم چند تا api برای مدل های هوش مصنوعی بنویسم و چند تا سوال در این باره دارم که واقعا ممنون میشم پاسخشون رو بفرمایید:
    سوال اول اینکه از بخش پرمیشن ها یاد گرفتیم چطور برای کاربر عمومی کاربر عضو مدیر و … مجوز دسترسی به api صادر کنیم اما من میخوام کاربری که به api دسترسی داره علاوه بر عضویت اشتراک هم تهیه کرده باشه(مثلا یک ماهه یا سه ماهه و …) اول اینکه با جنگو چطور میشه این ایده اشتراک پولی رو اجرا کرد و دوم پزمیشن مربوط به اون رو چطور تنظیم کرد؟
    سوال بعدی اینکه طبق جستجویی که در youtube کردم ایجاد api برای مدل هوش مصنوعی فقط در مرحله view تفاوت هایی داره که من متوجهشون نشدم (مثلا api_view یا router چی هستند؟یا چرا از سریالایزر درapi اصلی استفاده نشده) این لینک گیت هاب اون آموزشه: https://github.com/satssehgal/MLAPLI/
    میدونم که خیلی طولانی شد اما خیلی لطف میکنین اگر راهنماییم کنین بازم ممنون

    • مصطفی آصفی

      سلام به شما آقای کوه کن. شما هم خسته تلاشتون نباشید.
      در مورد سوال اولتون ببینید شما می تونید کلاس user رو همون طور که تو آموزش ساخت اینستاگرام هم توضیح دادم برای خودتون شخصی کنید. مثلا بر اساس سوالی که پرسیدین می تونید به کلاس یوزر پیش فرض جنگو یک فیلد have_payment اضافه کنید و موقع ارسال یک api چک کنید که آیا کاربری که این درخواست رو داده پرداخت کرده هست یا نه. اگه نه بهش بگید اشتراک بخر و هدایت کنید به درگاه و بعد خرید مقدار این فیلد رو true کنید تا تو فراخوانی های بعدیش بتونه api رو ببینه.
      در مورد سوال دومتون ببینید ما به دو شکل می تونیم view برای API بنویسیم در جنگو رست. یکی Class-based هست که تو این آموزش مینای کارمون بود (شیوه جدید و توصیه شده جنگو) و یکی هم function-based هست. یعنی view که می سازید می تونه یک کلاسی باشه که از کلاس view بزرگتری ارث می بره یا یک تابع باشه که هر ویژگی رو به یک صورتی براش تنظیم می کنید. مثلا تو آموزش ساخت فروشگاه ما از حالت تابعی استفاده کردیم. تو حالت تابعی مثلا اگه بخواهید یک تابع view فقط برای متد خاصی (مثلا get صدا زده بشه) به صورت پایین از دکوریتوهای جنگو رست دکوریتور api_view رو صدا می کنید و اون رو بالای تابع می نویسید. در این صورت تابع اون view فقط برای درخواست های از نوع get اجرا میشه:

      from rest_framework.decorators import api_view

      @api_view(http_method_names=[‘POST’])
      def myView(request):
      // some code for view functionality

  18. مسعود

    سلام وقت بخیر
    داخل این دوره شما پروژه هم هست که به فرانت متصل کنید یا نه؟
    یا فقط از نرم افزار های مثل پست من و … استفاده میشود؟

    • مصطفی آصفی

      سلام وقت شما هم بخیر. ما از دانش این دوره در این آموزش ساخت فروشگاه با جنگو (+) استفاده کردیم. در اونجا صدا کردن API رو تو اپ ری اکت با جاوا اسکریپت تجربه می کنیم و نکته های فنی احراز هویت و … رو هم به مرور کامل می کنیم.

      همچنین لطفا سرفصل های همین دوره رو هم در انتهای توضیحات بررسی کنید. درس ۲۷ استفاده از یک مورد رو برای مثال تو اپلیکیشن اندرویدی نشون دادیم. البته نه به این معنی که کدنویسی اندروید داشته باشیم. صرفا برای این که یک دیدی از API داشته باشین. بعد هم به سرور آنلاین فرستادیم.

  19. Golrosoltani@gmail.com (خریدار محصول)

    سلام استاد اصفی خسته نباشید.من کار با جنگو رست برای تولید ای پی ای رو در سایت های مختلفی گذروندم و پروژه ام تقریبا کامل فقط بخش ساخت یک صفحه برای لاگین و لاگ اوت و ثبت نام مونده بود که طبق پیشنهاد یکی از دوستان قصد داشتم از بسته شما استفاده کنم . بسته بسیار خوبی دارید ونسبت به بقیه بسته های مشابه سایت های دیگه خیلی خوب و راضی کنندس ممنون از زحماتتون. استاد بنده یک مشکل دارم و اون هم اینه که وقتی شما در درس 21 یک اشتباه تایپی داشتید که این اشتباه رو در درس 24 درست کردید و هیچ مشکلی پیش نیومد اما من وقتی میخوام طریقه صحیحش که مثل شما هست رو داخل کلاس ستینگ بنویسم اروری برای من میاد لطفا اگر میشه کمکم کنید. این کد های کلاسم که خواستم مثل شما بنویسم ‘DEFAULT_AUTHENTICATION_CLASSES’: [
    ‘rest_framework.authentication.SessionAuthentication’,
    ‘rest_framework.authentication.TokeAuthentication’
    ] و این اروری هستش که برای من میاد
    ImportError: Could not import ‘rest_framework.authentication.TokeAuthentication’ for API setting ‘DEFAULT_AUTHENTICATION_CLASSES’. ImportError: Module “rest_framework
    .authentication” does not define a “TokeAuthentication” attribute/class.

    • مصطفی آصفی

      سلام و سپاس از لطف شما. خانم سلطانی یه خطای تایپی دارید. TokeAuthentication رو اشتباه نوشتید. باید Token بنویسید.
      معمولا وقتی این خطا رو می گیرید از پایتون (فلان ماژول فلان اتریبیوت رو نداره … ) بیشتر مواقع یا خطای تایپیه یا خطای نصب.

  20. محمد وحید کوه کن

    سلام و وقت بخیر استاد سوالم اینه که من یه نرم افزار بر پایه دسکتاپ با فریمورک kivy دارم طراحی میکنم که طبق راهنمایی های شما میخوام بک اند نرم افزار رو(که شامل کتابخانه های متعدد و هوش مصنوعیه) روی سرور بارگذاری کنم. با توجه به توضیحات این آموزش و آموزش جنگو از صفر به این نتیجه رسیدم که سمت سرور رو میتونم با این دو آموزش طراحی کنم و backend با api با frontend نرم افزار در ارتباط باشه درسته؟

    • مصطفی آصفی

      سلام و وقت شما هم بخیر. بله درست متوجه شدید. شما باید اطلاعاتی که نیازه در سرور پردازش و اعلام بشه رو در قالب صدا کردن تعدادی api برای فرانت اند فراهم کنید. بعد از این که api رو توسعه بدین فرقی نمی کنه که دیگه اون رو در کیوی پردازش کنید (همون طور که تو پروژه نقشه گردشگری با هم در کیوی تجربه کردیم) یا هر فرانت اند دیگه ای. و خوبی api هم همینه. البته امنیت و مباحث فنی هم داره که بخشی در دوره گفته شده و بخشی هم به اقتضای کار کم کم تجربه می کنید.

  21. ایمان رجبی (خریدار محصول)

    سلام و عرض ادب خدمت استاد اصفی عزیز خدا قوت خسته نباشید استاد بنده با توجه به اموزش های شما میخواستم دوتا کلاس بسازم یکیش که کلاس پست بود که دقیقا مثل خودتون نوشتم و درست بود دیگری کلاسی بود برای امتیاز ها که میخواستم به نحوی باشه که امتیاز کاربر ها به عنوان ورودی وارد دیتابیس بشه و به عنوان خروجی اون امتیاز همراه اسمشون به صورت انلاین نمایش داده بشه. من پوشه مدل رو اینطوری کد نویسی کردم و وقتی سیستم رو ران میکنم صفحات برای من بالا میاد ولی وقتی میخوام امتیازات رو سیو کنم ارور میده و سیو نمیشه
    لطفا کمم کنید و بگید ایراد کد من چیه
    from django.db import models
    from django.contrib.auth.models import User

    class Post(models.Model):
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    title = models.CharField(max_length=85)
    body = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    def __str__(self):
    return self.title

    class Points(models.Model):
    author= models.ForeignKey(User, on_delete=models.CASCADE)
    score = models.IntegerField()

    • مصطفی آصفی

      سلام به شما جناب رجبی عزیز. لطفا خطایی که دریافت می کنید رو ارسال کنید.

  22. مهدی (خریدار محصول)

    سلام ، ممنون از آموزش شما . برای ارسال عکس به سرور چه کاری باید بکنیم لطفا راهنمایی بفرمایید .

    • مصطفی آصفی

      سلام به شما. سلامت باشید. برای آپلود عکس به صورت فایل می تونید از نمونه هایی شبیه سورس کدهای این گروه (+) الهام بگیرید. کار با فایل رو در آموزش وبلاگ حرفه ای توضیح دادیم.

      پی نوشت: برای مستقل شدن یادتون باشه که بعد از یاد گرفتن اصول یک فریمورک باید دست به گوگل باشید برای شخصی سازی ها و خواسته‌های خودتون:
      How to upload images in django rest framework

  23. ایمان رجبی (خریدار محصول)

    معذرت میخوام اگر خوب منظور رو نرسوندم. شما در درس ۲۳ که خواستید ای پی ای ثبت نام بسازید گفتید باید یک ای پی ای رجیستریشن هم داشته باشیم که بعدش گفتید جنگو و جنگو رست یک اپ پیش ساخته از قبل اماده برای رجیستریشن ندارند برای همین شما یکی از اپ های جانبی رجیستریشن که django-allauth بود رو معرفی و استفاده کردید . خب بنده کارهای دیگه ای به غیر از ثبت نام دارم و برای همین نیاز دارم ای پی ای رجیستریشن مخصوص کارهای دیگه رو بتونم بسازم اما نمیدونم برای ساخت ای پی ای رجیستریشن باید از چه اپ هایی یا کتابخونه هایی استفاده کنم.خواهشم این بود که اگر میشه راهنمایی کنید که از کجا میتونم با اپ ها و کتابخونه هایی که نیاز دارم اشنا بشم. اگر یک منبع فارسی زبان یا کتابی وجود داره ممنون میشم معرفی کنید

    • مصطفی آصفی

      سلام مجدد. خواهش می کنم مشکلی نیست. ببینید بهترین کار برای این که امکانات یک اپ رو بتونید ازش الهام بگیرید برای ساختن اپ مشابه با امکانات بیشتر اینه که سورس اون اپ رو ببینید. بعد از این که برای مثال همین django-allauth رو نصب می کنید به مسیر venv و بخش lib برید و سورس اپ رو بررسی کنید. خیلی سخت نیست. جدول هایی رو در پاسخ api ایجاد می کنه. سورس رو که چند روز وقت بگذارید و بررسی کنید چون متن بازه می تونید کلون کنید و شخصی سازی های خودتون رو اعمال کنید. شبیه کاری که برای ساختن مجوز دسترسی خاص افراد نویسنده کردیم.

  24. ایمان رجبی (خریدار محصول)

    سلام و عرض ادب خدمت استاد اصفی عزیز واقعا ممنون و خسته نباشید من طبق فرمایش شما دوره ساخت وبلاگ حرفه ای رو تموم کردم و الان مشغول به دوره ساخت برنامه ای شبیه اینستاگرام هستم و واقعا میتونم بگم حتی یک اموزش بد هم در تمام اموزش های شما وجود نداشت و واقعا حرفه ای بود و خیلی خیلی ممنون. استاد بنده دوره های شمارو مطالعه کردم و الان قصد دارم با استفاده از توانایی هایی که دارم یک ای پی ای برای اپلیکیشن خودم استخراج کنم و فقط یک سوال دارم. شما در درس 23 فرمودید که جنگو رجیستر پیش ساخته ای برای ثبت نام کاربران نداره برای همین یک نمونه که allauth بود رو معرفی کردید من میخوام ای پی ای رو برای موارد دیگه مثل قابلیت سرچ ، ساخت پروفایل عکس دار و قابلیت فالو کردن یا مثلا برای مواردی که میخوام یک روزه عکس تبلیغاتی بفرستم توی برنامه هم استخراج کنم ولی نمیدونم چه نوع رجیستری برای این کارها لازم ، لطفا اگر میشه یک منبع معرفی کنید که بتونم با انواع رجیستر ها که نیاز هستش برای این کارها آشنا بشم و مطالعه کنم. خیلی میبخشید اگر طولانی شد واقعا ممنون

    • مصطفی آصفی

      سلام جناب رجبی عزیز. راستش خیلی خوب متوجه سوالتون نشدم. منظورتون اینه که برای مثال کاربر وقتی می خواد برای پروفایلش عکس بگذاره باید ثبت نام کرده باشه؟ این رو همون طور که تو دوره اینستاگرام هم عرض کردم می تونید با چک کردن این که کاربر (user) ارسال به سرور تو ریکوئست قبلی وارد شده بوده یا نه چک کنید. اگه منظورتون رو درست متوجه نشدم لطفا با مثال بیشتر توضیح بدین.

  25. رحیم خیرگو (خریدار محصول)

    سلام مجدد و خسته نباشید و تشکر به خاطر این سایت خوبتون
    استاد من بعد از دو روز که ویدیوها رو نگاه کردم واقعا سر در گم شدم من نمیدونم این نوع استفاده از api کجا استفاده میشه من حداقل نیازی که دارم اینه که با استفاده از api یه سری اطلاعات رو بفرستم به سرور وقتی این اطلاعات رو پردازش کردم یه سری اطلاعات رو برگردونم در هر دو سمت من باید خودم اطلاعات رو پردازش کنم اینکه اتوماتیک سیستم این کار رو برام بکنه کار من راه نمیفته لطفا راهنمایی کنید در هر دو سمت اطلاعات چطور به صورت خام میتونم دریافت و مجددا برگردونم

    • مصطفی آصفی

      سلام به شما. ببینید شما اگه بخش سوم آموزش کیوی (ساخت نقشه گردشگری) رو دیده باشین اونجا در مورد پردازش API صحبت کردم. در انتهای همین آموزش جنگو رست هم پردازش API رو در اندروید توضیح دادم. شما کافیه برای امتحان همین API تولیدی این پروژه خودتون رو تو اپلیکیشن کیوی بخونید. برای شروع هم یه API آزمایشی GET ساده بفرستید و اونطرف پردازش کنید.
      ضمنا کار حرفه ای تر با API رو تو این آموزش ساخت فروشگاه با جنگو و ری اکت تو فصل های دوم به بعد خواهیم داشت. در صورت تمایل می تونید اونجا هم کار رو دنبال کنید.

      پی نوشت: از سوالتون بنده این برداشت رو می کنم که نه آموزش کیوی و نه این آموزش رو با دقت لازم ندیدین. حتما دست کم اون درس پردازش API (که اونجا API نقشه رو پردازش می کنیم) و درس های پایانی این بسته رو دست کم با دقت ببینید و نتیجه کارتون رو اینجا اعلام کنید.

  26. رحیم خیرگو (خریدار محصول)

    سلام
    تشکر میکنم به خاطر ويديوهای آموزشی من این سری آموزش رو به سفارش شما برای استفاده در kivy تهیه کردم که اشاره به نحوه استفاده در kivy در آن نشده یه سوالی داشتم برای برنامه نویسی اندروید kivy بهتر است یا جاوا کاتلین

    • مصطفی آصفی

      سلام به شما. سلامت باشید. جواب این سوال به شما بستگی داره. اگه یه اپی لزوما برای اندروید کافیه و کاتلین یا جاوا هم می تونید کد بزنید حتما از اندروید استودیو و این زبان ها استفاده کنید. به ویژه اگه اپلیکیشن فارسی رو باید پشتیبانی کنه. کیوی پشتیبانیش از زبان فارسی هنوز خیلی ضعیفه.
      اگه اپتون کراس پلتفرمه و مثلا یک بازی یا اپی هست که زبان درش خیلی مطرح نیست و شما هم پایتون کار پس بی شک کیوی گزینه خوبیه. اگه اپ کراس پلتفرمه و زبان هم مهمه و با جاوا اسکریپت آشنایی دارید ری اکت نیتیو گزینه خوبیه. همه چیز بستگی به امکانات شما و نوع پروژه داره (و البته آینده اون)

  27. ایمان رجبی (خریدار محصول)

    خیلی خیلی ممنون استاد مشتاقانه منتظر دوره های بعدی که فرمودید هستم

  28. ایمان رجبی (خریدار محصول)

    سلام و خسته نباشید خدمت استاد اصفی عزیز خیلی خیلی ممنون از این اموزش خوبتون من این دوره رو تموم کردم و بسیار راضی بودم و الان هم میخوام تشکر کنم و خسته نباشید بگم و هم دوتا سوال داشتم اول این که لطفا اگر میشه یک منبع معرفی کنید که بشه توی اون همه کتابخانه ها یا ماژول های جنگو رو دید و فهمید کار هرکتابخانه یا ماژول چیه و دو این که من اگر بخوام توی این زمینه حرفه ای تر بشم که مثلا بتونم api های مخصوص چت کردن کاربران باهم یا این که بتونن پروفایل با عکس خودشون رو داشته باشن بسازم باید چه منبع دیگه ای رو بخونم که بتونم این کارهارو انجام بدم

    • مصطفی آصفی

      سلام و سپاس برای ابراز محبتتون. خوشحالم که دوره انگیزه بخش بوده.
      در مورد فهرست کتابخونه ها این صفحه مستندات جنگو رو ببینید.
      در مورد بخش دوم سوالتون توصیه می کنم آموزش های پایین رو ببینید:
      ساخت وبلاگ حرفه ای و انتشار آنلاین با جنگو
      ساخت وبسایت شبیه اینستاگرام با جنگو

      انشالله به زودی آموزش ساخت فروشگاه با جنگو و ری اکت هم در هم رویش خواهیم داشت که اونجا همین بحث API رو با تجربه های دوره های قبلی روی هم جمع می کنیم تا آماده ورود به بازار کار یا توسعه استارتاپ خودتون بشید.

  29. امین اجاقی (خریدار محصول)

    با سلام و درود خدمت استاد بزرگ و گرامی مصطفی آصفی عزیز و دوست داشتنی با تشکر از پاسخ گویی بسیار نیکو و صمیمانه شما استاد عزیز برکت خدا بر شما و خانواده محترمتان .

  30. امین اجاقی (خریدار محصول)

    سلام و درود خدمت استاد بزرگ و دوست داشتنی مصطفی آصفی عزیز استاد گرامی بسیار دوره ی نیکو و ارزشمندی تهیه کرده اید و من این دوره بدون هیچ خطایی در کارم طی کردم و تمام آموزه ها کامل یاد گرفتم و با مسیر کار Rest Full API آشنایی کامل پیدا کردم که در نظر دارم پس از اتمام دوره جاوا اسکریپت که قصد دارم بعد از این پروژه که امروز به پایان رسید آغاز کنم یک پروژه کامل با جنگو ایجاد کنم به همراه API و یک سوال دارم این است که آیا می توانم با استفاده از کتابخانه Tkinter یک نرم افزار کامپیوتری ایجاد کنم و API را بر روی آن فعال کنم زیرا من Tkinter نیز بلد هستم و می خواهم از کل داشته هایم یک پروژه کامل ایجاد کنم و در رزومه کاریم قرار دهم و پروژه ای که در نظر دارم یک نرم افزار دانلود موسیقی می باشد که بعدا با یاد گرفتن Kivi نسخه موبایلی آن را نیز اضافه کنم.
    و سوال دیگر اینکه استاد عزیز این APP موبایلی که در پروژه قرار داده اید را چگونه باید در سیستم اجرا کنم زیرا در پای چارم دکمه Run مانند ویدئو روشن نیست تا پروژه را اجرا نمایم.
    با تشکر از محبت های بسیار نیکوی شما استاد عزیز و دوست داشتنی برکت خدا بر شما و خانواده محترمتان شدر مسیر زندگی من در موضوع برنامه نویسی یکی از پر برکت ترین استاد هایم هستید که بسیار از شما یاد گرفته و یاد خواهم گرفت با تشکر .

    • مصطفی آصفی

      سلام به شما و خدا قوت. همین طور بسیار ممنونم از لطفی که به بنده دارین. شرمنده می کنید.
      در مورد سوال اولتون بله مشکلی نیست. شما در Tkinter به راحتی می تونید از کتابخونه های پایتون استفاده کنید. برای مثال با پایتون و کتابخونه request (یا کتابخونه های دیگه) می تونید API رو فراخوانی و به صورت جیسون دربیارید و بعد جیسون رو اون طوری که مورد نیازه تو اپ TKinter به کار بگیرید. این نمونه فراخوانی API در پایتون (+) رو ببینید.

      در مورد اپلیکیشنی که تو اون پروژه استفاده شد اگه دقت کرده باشین من اونجا از اندروید استودیو استفاده کردم. نصب اندروید استودیو رو می تونید به رایگان تو برگ های هم رویش دریافت کنید. اما توصیه نمی کنم خودتون رو درگیر اون کار بکنید. من اون اپ رو فقط مثال زدم که نحوه استفاده از API در یک اپ رو نشون داده باشم. نصب اندروید استودیو و کتابخونه ها و گریدل برای کسی که آشنا نیست خیلی داستان داره و مگه در حالتی که قصد داشته باشین توسعه دهنده اندروید بشید بهتون توصیه نمی کنم.

  31. محمدمتین محمدی (خریدار محصول)

    درود استاد خسته نباشید، من یه جا گیر کردم واقعا، برای ثبت نام به صورت ای پی آی با فیلد های اختصاصی خودمون باید چیکار کنیم؟؟ آیا میتونیم فیلد های خودمون رو به اون اپ هایی(allauth, …) که ای پی آی ثبت نام میدادن به ما اضافه کنیم؟ یا اینکه اگر قرار باشه که خودمون یه اپ ثبت نام بنویسیم راهنمایی میکنید که باید چیکار کنیم(اگر جای دیگه ای به طور انگلیسی میشناسید که اینو گفته باشه لطف میکنید که لینکش رو قرار بدید) و در آخر یه پیشنهاد دارم اونم اینه که لطفا آموزش پیشرفته ای پی آی با جنگو رو هو تهیه کنید.. سپاس

    • مصطفی آصفی

      سلام به شما. اگه منظورتون اختصاصی کردن درس 23 هست، دو کار میشه کرد:
      1- اپ allauth رو برای خودتون فورک و بازنویسی کنید که از خیلی بخش های مفیدش استفاده کنید.
      2- یک سیستم ثبت نام اختصاصی برای خودتون بنویسید. برای شروع می تونید عبارت «register form by django rest» رو گوگل کنید، فیلم های خوبی تو یوتیوب و مقاله های خوبی در این زمینه هست. من یه مورد خاص رو پیشنهاد نمی کنم که محدود به گفته من بشید. بگردید تا مورد متناسب نیاز خودتون رو پیدا کنید.

  32. صالحی

    سلام خسته نباشید من به پیشنهاد شما استاد اصفی این‌ دوره مخصوص api رو شروع کردم و به صورت مروری یکبار خوندم و الان برای بار دوم دارم میخونم و تک تک کارهایی که میگید رو انجام میدم فقط من یه مشکل دارم اونم این که من میخوام توی برنامم همه کاربرها شماره و نوبتشون توی صفحه مخصوص شماره ها به ترتیب پخش بشه همراه با اسم و مشخصاتشون فقط هیچ ایده ای برای این که چجوری کد نویسی کنم که همه بتونن نوبت و شماره هم رو ببینن ندارم🤦‍♀️ لطفا اگر میشه بهم بگید چجوری میتونم چنین کدی بنویسم داخل کدهای api که چنین چیزی که گفتم رو داخل اپلیکیشن‌خودم داشته باشم

    • مصطفی آصفی

      سلام و سلامت باشید. شما باید داده هاتون رو مدل و سپس تو دیتابیس ذخیره کنید. مثلا یک Model نوبت تعریف کنید که یک شماره و یک تاریخ داره و یک کلید خارجی هم به جدول کاربران.

      پی‌نوشت 1- با توجه به نوع سوالتون به نظرم باید این آموزش مقدماتی جنگو (+) رو اول ببینید تا با مفهوم مدل و ذخیره کردن داده های یک مدل آشنا بشید.

      پی‌نوشت 2 – شما با این ایمیلی که پیام دادین فراگیر این دوره نیستین. اگه آموزش رو به روش دیگه ای تهیه کردین توصیه می کنم آموزش ها رو صرفا از هم رویش تهیه بفرمایید.

  33. محمدمتین محمدی (خریدار محصول)

    سلام خسته نباشید استاد، من وقتی کوئری میزنم کار نمیکنه queryser = model.objects.all() آبجکتز رو اینو اینجا نمیخونه و کار نمیکنه!

    • مصطفی آصفی

      سلام به شما. لطفا خطایی که دریافت می کنید رو ارسال کنید.

  34. موسی جعفرزاده (خریدار محصول)

    سلام وقت شما بخیر ببخشید در جنگو چطور میشه با یک پایگاه داده sql server ارتباط برقرار کنیم ؟

  35. Parham

    سلام خوب هستید ببخشید من یه سوال داشتم من میخوام یه بازی با جاوا بسازم اگر سرورو از قبل اجرا کرده باشم میتونم با این دوره شما برنامرو بتونم انلاین کنم دیگه افلاین نباشه؟؟؟ و یه سوال دیگه دارم ازتون اول باید بازیرو بسازم بعد تو این دوره شرکت کنم به نظرتون یا اول دوررو بگذرونم بعدش برنامرو بسازم؟ شما چون خیلی وارد این داستان هستین به نظرم بعترین روش مشاوره از شماس👌

    • مصطفی آصفی

      سلام آقای عباس زاده. اول یه سناریوی کلی از کارکرد بازیتون و نحوه آنلاین بودنش بنویسید. گام بعد شروع به ساخت بازی کنید و گام بعد هم سرور رو بنویسید و آنلاین کنید.
      همین طور برای این که تک زبانی کار کنید توصیه می کنم این آموزش بازی سازی با پایتون رو ببینید شاید کمکتون کنه که بازی و سرور همگی رو با پایتون بسازید.
      ضمنا بازی ساخته شده با پای گیم رو می تونید به کمک این آموزش کیوی و البته ابتکار خودتون به صورت اپ ویندوز و اندروید خروجی بگیرید.

  36. موسی جعفرزاده

    سلام جناب آصفی وقت شما بخیر
    من دوره طراحی وب سایت با پایتون را تمام کردم و ممنون از شما که خیلی روان و خوب مفاهیم را توضیح دادید.
    من قصد دارم برای بک اند و برنامه نویسی سمت سرور بیشتر وقت بزارم و تمرکز کنم، به لطف خدا و زحمات شما دوره های خوب و متنوعی در سایت عالی شما هستش که من کمی سردرگم شدم که باید چه مسیری را طی کنم که به هدفم برسم. تا این لحظه برنامم این بود که بعد از دوره طراحی وب با پایتون دوره api با جنگو را بگذرونم، و البته بعد از کار کردن این دو، دوره کیوی را شروع کنم . ممنون میشم راهنماییم بفرمایید

    • مصطفی آصفی

      سلام و ممنون از لطف شما. خوشحالم که اون آموزش براتون مفید و قابل درک بوده.
      ببینید مسیر ورود به بازار کار تو هر حوزه ای شامل چند گام کلی هست:
      گام 1- دیدن آموزش های اولیه برای یاد گرفتن نحوه پیاده سازی امکانات مختلف
      گام 2- تعریف یک پروژه و تلاش برای پیاده سازی ایده های خود با بسط دانشته های قبلی
      گام 3- دیدن آموزش های تکمیلی برای گرفتن ایده و تکمیل پروژه قبلی یا تعریف پروژه جامع تر
      گام 4- شروع دادن آگهی پذیرش پروژه واقعی در وبسایت های آزادکاری مثل پونیشا و گرفتن کار به تناسب مهارت و رشد تدریجی در دل پروژه ها
      گام 5- متمرکز شدن روی یک بخشی از اون حوزه که اشتیاق شما رو خیلی بیشتر جلب می کنه و بعد رفتن به سراغ شرکت های بزرگ برای استخدام و رشد جهشی.

      با توضیح مسیر آموزش جنگو که در هم رویش طراحی شده در گام اول به صورت پایین هست:
      گام 1 – دیدن آموزش مقدماتی جنگو و دیدن آموزش Django REST (همین صفحه)

      گام 2- تلاش برای حل تمرین پایانی آموزش Django REST و ایجاد یک سیستم API فروشگاهی ساده (بدون درگاه پرداخت) – شما که هدفتون بک اند هست اینجا روی پردازش گرافیکی در کیوی یا محیط دیگه ای نیاز نیست تمرکز کنید. صرفا به سواگر اکتفا کنید.

      گام 3 – دیدن آموزش ساخت وبلاگ حرفه ای و آموزش ساخت شبکه اجتماعی و تمرین اون ها به صورت فشرده. به این نقطه که رسیدید دو مسیر پیش رو دارید. چون می خواید به صورت شخصی اول کسب تجربه کنید و پروژه های کوچیک بگیرید، می تونید روی توسعه وبسایت تمرکز کنید یا اپلیکیشن. اگه بخواهید با جنگو روی توسعه وبسایت تمرکز کنید،

      گام 4 (و شاید 5)
      اینجا دیگه با توجه به توضیحاتی که در مورد فرانت اند در آموزش شبکه اجتماعی دریافت کردید وقتشه که اول یک آموزش مقدماتی HTML و CSS و JavaScript ببینید و بعد آگهی بدید در جاهای مختلف که مثلا توسعه وبسایت ارزان. از بین پیشنهادها اونی که فکر می کنید با کمی تلاش از پسش برمیاید رو بپذیرید و شروع کنید به کار حرفه ای.
      اگر هم قصد ندارید وبسایت توسعه بدین و هدفتون سرورنویسی هست دو کار باید بکنید:‌ اول بگردید ببینید آیا شرکتی هست که کارآموز بپذیره رایگان برید و براشون کارهای حجمی روزانه بخش جنگو و API رو انجام بدین و کم کم کسب تجربه کنید. اگه شرکت مناسبی پیدا کردید که عملا گام 4 و 5 رو به صورت تدریجی دارید طی می کنید و پیش برید. اگه پیدا نکردید باید خودتون ناچار هستید کمی فرانت اند بیشتری یاد بگیرید که بتونید پروژه های کوچیک اشخاص رو به طور کامل براشون بزنید و رزومه رو برای استخدام آماده کنید. شروع کنید به دیدن آموزش React که بتونید API رو سمت وب تجزیه کنید بعد هم React Native برای تجزیه API سمت اندروید و iOS و اون وقت اون سیستم API فروشگاهی گام 2 رو می تونید به یک سیستم فروشگاهی واقعی تبدیل کنید. بعد به وبسایت های کاریابی برید و آگهی بدین که من می تونم براتون فروشگاه بزنم با قیمت مناسب- اگه این مسیر رو تا اینجا اومده باشید، هم می تونید به صورت شخصی کسب درآمد خوبی بکنید هم شما تقریبا یه برنامه نویس فول استک محسوب می شید که می تونه فرانت اند و بک اند رو با هم بفهمه و بخت زیادی برای استخدام در شرکت های متوسط و بعدها در شرکت های بزرگ به عنوان سرپرست گروه دارید.

      این مسیری که براتون ترسیم کردم اگه فشرده روش وقت بگذارید یک سال کار داره. عجله نکنید و صبورانه ریشه هاتون رو قوی کنید.

  37. محمدرضا گوشکی (خریدار محصول)

    سلام و خسته نباشید استاد عزیز یه سوال داشتم محبت کنید راهنماییم کنید
    برای مثال من یه ریکوست میفرستم برای سرور که دو عدد صحیح داخلش هست اونور سمت سرور چطوری میتونم به محتوای این رکوست که دو عدد صحیح هست دسترسی پیدا کنم و یک محاسبه روش انجام بدم؟آیا متدی داره که بشه محتوای ریکوست رو واکشی کرد؟ ممنون میشم راهنماییم کنید

    • مصطفی آصفی

      سلام جناب گوشکی عزیز. می بخشید دیر شد جوابتون. بله ببینید شما وقتی با POST با سرور حرف بزنید می تونید پارامتر بفرستید و اون طرف بگیرید و پردازشش کنید.
      یادتون باشه که شی request در جنگو حاوی این پارامترهاست.

  38. مهدی گلستانی

    خیلی ممنون از پاسخگوییتون !
    ببخشید اگر زیاد سوال میپرسم .
    پس اگر من اپلیکیشنم رو با یونیتی ساخته باشم ،میتونم به کمک این آموزش ها انلاینش کنم، درسته؟؟؟؟

    • مصطفی آصفی

      سلامت باشید. بله شما با سرورهای با زبان های دیگه می تونید به واسطه API صحبت کنید. این مقاله کار با API در یونیتی (+) رو برای مثال ببینید.

  39. مهدی گلستانی

    سلام و خسته نباشید استاد اول از همه خواستم‌ بگم من اموزش طراحی وب سایت با جنگو رو تهیه کردم‌و یاد گرفتم و واقعا فقط میتونم بگم عالی بود و در حال حاضر قصد دارم اموزش این دوره رو تهیه کنم فقط یک سوال داشتم اون هم این که اگر من وب سایتم رو با زبان پایتون و به کمک جنگو نوشته باشم ولی اپلیکیشنم رو با برنامه دیگه ای به غیر از پایتون نوشته باشم مثل یونیتی یا جاوا اسکپریت باز هم با کمک این دوره توانایی انلاین کردن اپلیکیشنم رو دارم؟

    • مصطفی آصفی

      سلام و سلامت باشید. خوشحالم که آموزش جنگو برای شما مفید بوده.
      بله شما می تونید Web API رو در فرانت اندهای مختلف پردازش کنید. در پایان همین دوره بنده مثالی از پردازش API در یک اپلیکیشن اندروید با زبان جاوا می‌زنم.

  40. amir ayat (خریدار محصول)

    سلام استاد با استفاده از کد زیر به عنوان تمرین IsAuthorOrIsAuthenticated ایجاد کردم:

    class IsAuthorOrIsAuthenticated(permissions.BasePermission):

    def has_object_permission(self, request, view, obj):
    if request.method in permissions.SAFE_METHODS:
    return bool(request.user and request.user.is_authenticated)
    return obj.author == request.user

    به طور کلی درست عمل میکنه تنها ایراد اینجاست که در حالت کاربر مهمان همچنان باتن های DELETE و OPTION به صورت غیر فعال بالای صفحه هستن. برای اینکه این ها برداشته بشن چه باید کرد؟؟؟؟

  41. محمد

    سلام استاد خسته نباشید من دوره را ندیدم ولی با دوره های قبلی شما خیلی چیزها یاد گرفتم یه پروژه گرفتم آپ اندرویدهستش؛ سفارش غذا یک رستوران آپ لوکال کار میکنه ولی ایده اصلی اینه که سمت رستوران یه فرانت داشته باشه(وب) که آنلاین باشه اینور کاربر سفارش داد ناتیفیکیشنی سمت سرور بیاد که مثلا یک سفارش تایید و پرداخت شد بره برای پردازش این کارها با رست فریمورک انجام میشه ؟؟

    • مصطفی آصفی

      سلام به شما. بله با ترکیب Django و Django REST میشه پیاده سازی کرد. اتفاقا در پایان این دوره مثالی هم از خوانش API در یک اپ اندروید زدم.
      شما برای مثالی که زدید یک وب اپ جنگو باید بسازید که بشه پنل مدیریت فروشگاهتون. همین طور در قلب این اپ یک سریالایزر (مطابق همین آموزش) باید ایجاد کنید که API لازم رو برای واکشی و گزارش محصولات و … پیاده سازی کنه. همین طور از اپ signal در جنگو استفاده کنید برای شبیه سازی اتصال سوکت و دریافت نوتیفیکیشن آنی در وب اپ.

  42. محمد وجدانی (خریدار محصول)

    سلام استاد خسته نباشید من این دوره apiوتمام دوره های کیوی شمارو خریداری کردم وهمچنین سایت فروشگاهی باجنگو ساخته ام .میخوام این سایت رو توی اندروید و ویندوز و…. استفاده کنم . امروز که دوره apiروتمام کردم چیزی ازش متوجه نشدم (یعنی ای کاش توی اندروید بالا میاوردید یه پروژه).میخواستم بدونم اگه این دوره های کیوی شمارو نگاه کنم میتوم سایتم رو توی اندروید هم بالا بیارم وسایتم رو کامل کنم

    • مصطفی آصفی

      سلام به شما. ببینید اتفاقا بنده در این دوره بعد از تکمیل API وبلاگ، برای نمونه در یک اپلیکیشن اندروید نحوه خوندن API و نمایش در اپ اندروید رو بررسی کردم. درس‌های پایانی رو با دقت ببینید.
      از طرفی همین فرآیند خوندن API رو در پروژه نقشه گردشگری کیوی با خوندن API نقشه ایرانی توضیح دادم (درس یازدهم آموزش پروژه محور کیوی).
      پس شما با ترکیب این دو آموزش باید بتونید دست کم همون API وبلاگ که در این دوره تولید شد رو در یک اپلیکیشن کیوی با صدا زدن API بخونید و نمایش بدید.
      بعد از این که این مرحله رو پیش رفتید باید به عنوان تمرین بنشینید و یک سیستم API برای یک فروشگاه طراحی کنید. مثلا ما یک صفحه نمایش محصول داریم که فلان API رو وقتی صدا زدیم مشخصات نام و توضیح محصول ها از جدول محصولات (مدل محصولات) خونده و نمایش داده میشه. یک API نیاز داریم که وقتی کاربر روی دکمه افزودن به سبد خرید کلیک کرد صدا زده میشه و به ازای اون سرور میاد در جدول سفارش ها به ازای اون user یک سطر ایجاد می کنه و به همین ترتیب.

      پی نوشت: من فکر می کنم شما اول نیازه که آموزش های جنگو رو با دقت ببینید و اجرا کنید. بعد از اون اول یک سایت فروشگاهی با جنگوی سنتی بسازید بعد سراغ سریالایزر برید برای گرفتن API.
      پردازش API در سمت اپلیکیشن اندروید یا ویندوز کار سختی نیست. کار اصلی اون طراحی سمت سرور هست.

  43. saeed

    سلام وقت بخیر استاد . یه سوال داشتم ازاتون این آموزش اتون Django Rest برای Api نویسی تو فلاتر هم کاربرد داره ؟

    • مصطفی آصفی

      سلام به شما. بله ببینید وقتی شما یک سیستم API ایجاد می کنید برای نمایش خروجی اون می تونید فرانت اندهای مختلفی استفاده کنید. ممکنه در React یا Flutter یا به صورت نیتیو در اندروید استودیو و … استفاده کنید.
      در پایان همین دوره هم برای نمونه در یک اپ اندرویدی استفاده کردیم. اما شما ممکنه خروجی Json حاصل رو در یک اپ فلاتری پردازش کنید.
      توصیه می کنم این تک درس رایگان با موضوع « Web API چیست » رو ببینید.

  44. رضا (خریدار محصول)

    سلام عرض میکنم خدمت استاد آصفی عزیز
    اول از همه تشکر میکنم بابت تهیه این آموزش فوق العاده و پیشنهادی هم داشتم :
    من قبلا با sql server کار میکردم و همونجا هم کوئری میزدم(البته خیلی مقدماتی) و به نظرم در برخی جاها کار با خود نرم افزار دیتابیس هم الزامی میشه و همچنین درک انواع روابط بین جداول به صورت عمیق تر (یا حتی استفاده از تریگر و..).پس اگه امکانش هست یه دوره هم در آینده در مورد postgresql یا sqlserver و حتی نمودار ERD برای پیدا کردن منطق مناسب در نحوه ی ارتباط بین جداول در نظر بگیرید.
    سپاس گزارم.

    • مصطفی آصفی

      سلام و سپاس از لطف شما. بله مطلب مهمی اشاره کردید و پیشنهاد درسته. حتما برای مباحث پیشرفته این مطلب یا موردی مشابه برای رفع نیاز در این زمینه تو سرفصل‌ها قرار می‌دم.

  45. parvizi.arman@gmail.com (خریدار محصول)

    میخوام از این طریق یه تشکر ویژه کنم از مدرس گرامی،
    بسیار دوره ی خوبی بود.
    به جرات می تونم بگم اولین دوره ای بود که من دیدم مبحث deploy کردن هم جزء سرفصل هاش بود
    فقط در صورت امکان دوره پیشرفته هم آماده کنید

    • مصطفی آصفی

      سلام. ممنونم که برای ابراز لطفتون وقت گذاشتید. خدا رو شکر که آموزش برای شما مفید بوده.
      در رابطه با جنگو دوره های پیشرفته ای در حال ضبط هستند. از این دسته، آموزش وبلاگ حرفه ای با جنگو (+) تا به حال منتشر شده و انشالله آموزش ساخت شبکه اجتماعی و فروشگاه هم در راه داریم. در این مسیر حتما مباحث پیشرفته تری از اتصال به فرانت اند به ویژه با API و GraphQL رو خواهیم داشت. هم رویش رو در شبکه های اجتماعی دنبال کنید تا به موقع از انتشار اون ها مطلع بشید.

  46. ابوالفضل حسن زاده (خریدار محصول)

    سلام استاد.
    استاد چند وقت پیش من این آموزش جنگو رست رو دریافت و شروع به یادگیری این مبحث کردم اما هرچه که نگاه و تمرین میکردم اصلا منطق کار رو متوجه نشیدم.
    مثلا ما در آموزش وبلاگ حرفه ای برای نظرات نیاز به url دیگری برای پردازش نبود و تو detail پست ها تمامی شرط و شروط ها رو میگذاشتیم یه فرمی رو رندر میکردیم اما در اینجا نمیشه برای هرکاری باید یک url برای پردازش بنویسیم خب بعد اون موقع اون سمت چه جوری میشه ( front-end ) اصلا من گیج شدم استاد.
    اصلا ما از کجا بفهمیم متد get هست یا post. و خیلی موارد دیگر اگر یه توضیح به ما بدهید ممنون میشیم. باسپاس فراوان.

    • مصطفی آصفی

      سلام به شما. ببینید همون طور که در درس های پایانی هم یک نمونه نشون دادم (اندروید)، تولید Web API به این جهت خوبه که شما می تونید یک قلب برای چند فرانت اند (وب، دسکتاپ، اپ) داشته باشید.
      شما در جنگوی سنتی، یک تمپلت می نویسید و اون رو می فرستید برای رندر در مرورگر. حالا اگر بخواهید مثلا همون پروژه وبلاگتون (یا اگر به جای اون یک پروژه فروشگاه باشه) یه اپلیکیشن اندروید داشته باشه باید چه کنید؟ باید از اول اپلکیشن رو هم بنویسید.
      در مورد نوع متد تو مستندات سواگر مشخص هست که توسعه دهنده فرانت اند باید چطور از API استفاده کنه. من فکر می کنم شما باید درس های آخر رو با دقت بیشتر ببینید. سواگر رو هم اونجا توضیح دادم. ببینید و اجرا کنید تا منطق کار رو بهتر درک کنید.
      امروز جنگو بیشتر داره به عنوان قلب سرور استفاده می شه برای تولید API برای حرف زدن با دیتابیس که اون طرف مثلا با ریکت نیتو، اندروید یا iOS خروجی جیسون به شیوه دلخواه نمایش داده بشه.

  47. رهام بادی (خریدار محصول)

    سلام استاد امیدوارم حالتون خوب باشه ، ببخشید من باز مزاحم شدم مشکل در view بود دستتون درد نکنه. ولی استاد هنوز نتونستم کاری کنم که وقتی
    user ، لاگین میکنه فقط همان user بتونه پست ایجاد کند یعنی در قسمت author اسم آن user که لاگین شده باشه ،در واقع نتونستم if را بنویسم
    استاد عکس فایل ها را در اینجا گذاشتم که اگر وقت داشته باشید برسی کنید ممنون .
    https://uupload.ir/files/mnpg_1.png
    https://uupload.ir/files/z736_2.png
    https://uupload.ir/files/37d6_3.png
    https://uupload.ir/files/6jb_4.png
    https://uupload.ir/files/8zae_5.png
    https://uupload.ir/files/kc9x_6.png

  48. رهام بادی (خریدار محصول)

    سلام استاد ببخشید خیلی مزاحم شدم ، استاد من فکر کنم اصلا درست به کار نبردم ، چندین روش را به کار بردم ولی نشد این یکی از نمونه error هایی که گرفتم
    Exception in thread django-main-thread:
    Traceback (most recent call last):
    File “C:\Users\Roham\PycharmProjects\blog_api\venv\lib\site-packages\django\urls\resolvers.py”, line 591, in url_patterns
    iter(patterns)
    TypeError: ‘module’ object is not iterable

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last):
    File “C:\Users\Roham\AppData\Local\Programs\Python\Python36\lib\threading.py”, line 916, in _bootstrap_inner
    self.run()
    File “C:\Users\Roham\AppData\Local\Programs\Python\Python36\lib\threading.py”, line 864, in run
    self._target(*self._args, **self._kwargs)
    File “C:\Users\Roham\PycharmProjects\blog_api\venv\lib\site-packages\django\utils\autoreload.py”, line 53, in wrapper
    fn(*args, **kwargs)
    File “C:\Users\Roham\PycharmProjects\blog_api\venv\lib\site-packages\django\core\management\commands\runserver.py”, line 118, in inner_run
    self.check(display_num_errors=True)
    File “C:\Users\Roham\PycharmProjects\blog_api\venv\lib\site-packages\django\core\management\base.py”, line 396, in check
    databases=databases,
    File “C:\Users\Roham\PycharmProjects\blog_api\venv\lib\site-packages\django\core\checks\registry.py”, line 70, in run_checks
    new_errors = check(app_configs=app_configs, databases=databases)
    File “C:\Users\Roham\PycharmProjects\blog_api\venv\lib\site-packages\django\core\checks\urls.py”, line 13, in check_url_config
    return check_resolver(resolver)
    File “C:\Users\Roham\PycharmProjects\blog_api\venv\lib\site-packages\django\core\checks\urls.py”, line 23, in check_resolver
    return check_method()
    File “C:\Users\Roham\PycharmProjects\blog_api\venv\lib\site-packages\django\urls\resolvers.py”, line 408, in check
    for pattern in self.url_patterns:
    File “C:\Users\Roham\PycharmProjects\blog_api\venv\lib\site-packages\django\utils\functional.py”, line 48, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
    File “C:\Users\Roham\PycharmProjects\blog_api\venv\lib\site-packages\django\urls\resolvers.py”, line 598, in url_patterns
    raise ImproperlyConfigured(msg.format(name=self.urlconf_name)) from e
    django.core.exceptions.ImproperlyConfigured: The included URLconf ‘blog_project.urls’ does not appear to have any patterns in it. If you see valid patterns in the file then the issue is
    probably caused by a circular import.

    • مصطفی آصفی

      سلام. خواهش می کنم. امیدوارم که بتونم کمکی بکنم. ببینید این خطای شما به طور کلی داره به وجود ایراد در بررسی url اشاره می کنه. من دو حالت رو پیشنهاد می کنم با دقت بررسی کنید:

      الف- بر اساس خط های آخر خطا، ممکنه شما blog_project.urls رو ندارید یا اگر دارید، url pattren داخل اون درست نیست.
      اگر ماژول urls.py رو داخل blog_project ندارید اضافه کنید (دقت کنید که urls.py باشه نه url.py) و اگر هم این ماژول رو به درستی دارید عبارت پایین رو داخلش داشته باشید:
      urlpatterns = []
      به املای کلمه urlpatterns دقت کنید شاید چیزی داخل اشتباه نوشته شده.

      ب- ممکنه شما همه موارد بالا رو به درستی دارید اما از نظر منطقی path صحیحی ننوشتید. مثلا دو path داشته باشید که هر دو دارن به یک پیج اشاره می کنن. مثلا دو path با مقدار خالی که هر دو به “/” اشاره می کنن.

      پ- در بخش INSTALLED_APPS ترتیب وارد کردن اپ ها مهمه. اپ ها به ترتیب مورد نظر قرار می گیرن (برای مثال اگر شما بخواهید اپ اختصاصی auth خودتون قبل از auth جنگو پردازش بشه و لاگین ویژه خودتون رو داشته باشید باید اپ خودتون رو بالاتر بیارید. در مورد این پروژه اپ خودتون رو بعد از همه اپ ها بگذارید تا همه کارهای لازم براش انجام بشه.

      باز بررسی کنید موارد بالا رو و نتیجه رو اطلاع بدین.

      در پایان دقت کنید که در پای چارم با کلیک کنار ستون سمت چپ کدها در ویو ها هم می تونید breakpoint ایجاد کنید. گاهی منشا خطا اگه از view باشه، در اون نقطه می تونید با دیباگ کردن خطای اصلی رو پیدا کنید.

  49. رهام بادی (خریدار محصول)

    سلام استاد دستتون درد نکنه بابت راهنمایی ها، فقط مشکلی که دارم این که نمیدونم چجوری دستور if را به کار ببرم چون هرچی مینویسم error میده .ممنون میشم راهنمایی کنید .

    • مصطفی آصفی

      سلام مجدد. خواهش می کنم. لطفا خطایی که دریافت می کنید رو گزارش کنید که بشه بهتر نظر داد.

  50. رهام بادی (خریدار محصول)

    سلام استاد امیدوارم حالتون خوب باشه ، استاد من تمام کار هایی که در قسمت 18 و 19 فرمودید را انجام دادم منتها میخوام یک ویژیگی دیگر در postlist باشد کسانی که میتوانند پست ایجاد کنند فقط بتوانند برای خودشان این کار را انجام دهند ، چون الان کسانی که به postlist دسترسی دارند میتوانند جای کسانی دیگر پست ایجاد کنند ، ولی این مشکل را برای postdetail ندارم .

    • مصطفی آصفی

      سلام به شما. سلامت باشید جناب بادی عزیز همچنین.
      ببینید همون طور که در دقیقه 7 درس 19 توضیح دادم، شما می تونید کاربر درخواست دهنده جاری API رو در سطح دسترسی اختصاصی خودتون داشته باشید:
      request.user
      با این حساب شما کافیه همون طور که در درس های بعد یاد می گیرید اولا این API ایجاد Post رو فقط به کاربر وارد شده اجازشو بدین و ثانیا در لحظه ایجاد Post یک if بگذارید که فقط (دقت کنید) فقط در صورتی کاربر بتونه post رو ایجاد کنه که id منسوب به post مساوی با id خود شخص لاگین شده باشه.

  51. مونا اصغری (خریدار محصول)

    در ادامه دیدگاه قبلی در صورت امکان دوره آموزشی در زمینه تست API در نرم افزار Postman هم تهیه بفرمایید . ممنونم

    • مصطفی آصفی

      انشالله در رابطه با مباحث پیشرفته جنگو و API عنوان‌هایی در دست طراحی هستند. هم رویش رو در شبکه های اجتماعی با شناسه HamRuyesh دنبال بفرمایید، دوستان به محض انتشار در اونجا اطلاع رسانی می کنن.

  52. مونا اصغری (خریدار محصول)

    به جرات میتونم بگم یکی از بهترین آموزشهایی بود که دیدم و باقیمت بسیارررر مناسب
    از ویژگیهای مهم این آموزش بیان شیوا و روان مدرس و همینطور توضیح کامل و عمیق مفاهیم بود که در اکثر آموزشها به این مورد پرداخته نمیشه و فقط از یکسری مفاهیم اسم برده میشه و به همین دلیل خیلی از آموزشها برای ما شاید کاربردی باشه اما درک عمیقی از مکانیزم و ساختار اون شاید نداشته باشیم
    من واقعا ممنونم و خوشحالم که آموزشی در این سطح وجود داره
    میتونم بگم قبلا این مدل آموزش و انتقال مطلب رو فقط در آموزشهای جادی دیده بودم و با کمال علاقه در طول یکروز همه قسمتهارو دیدم
    امیدوارم مطالب آموزشی بیشتری در این حوزه در سایت ببینم

    • مصطفی آصفی

      سلام به شما و ممنونم که برای ابراز نظر و لطفتون وقت گذاشتید. باعث دلگرمیه و امیدوارم که در آینده حرفه ای شما نقشی داشته باشه.

  53. رهام بادی (خریدار محصول)

    سلام استاد امیدوارم حالتون خوب باشه ، استاد در قسمت permission ها،من میخواستم متد postlist را به صورتی که در postdetail انجام دادیم ، انجام بدم یعنی IsAuthorOrReadOnly را با ان اجرا کنم منتها وقتی این کار را انجام دادم و آدرس api/v1 را اجرا میکنم به صورت Allowany میشه ، چطور این مشکل را حل کنم ؟

    • مصطفی آصفی

      سلام به شما. می بخشید چند روزی درگیر بودم جواب شما دیر شد. نمی دونم مشکلتون حل شد یا خیر. به نظر شما باید درس 18 و 19 رو با دقت نگاه کنید. یک جایی ماهیت کارتون با چیزی که به ظاهر دارید تنظیم می کنید متفاوته.

  54. erfanmorsali (خریدار محصول)

    سلام استاد خسته نباشید…میبخشید من به یک مشکلی که خوردم اینه که چه توی swagger و چه توی doc خود رست فریم ورک با متد های GET و DELETE هیچ مشکلی ندارم ولی برای متد های POST و PUT که باید براشون body ست کنیم و پارامتر بفرستیم نمیتونم اینکارو بکنم..در واقع تو همون صفحه ای ک شما نشون دادید تو متد POST فیلدهای مدلتون رو نوشته بود و میتونستید مقدار دهی کنید…ولی واس من نوشته no parameters…تقریبا ۲روزی هست ک درگیر این مشکل هستم و بخاطر همین یک موضوع فقط دوره رو خریدم ک شاید حل شه و نشد…ضمنا من دارم از APIVIEW استفاده میکنم
    ممنون میشم کمکم کنید

    • مصطفی آصفی

      سلام به شما. ببینید در OpenAPI 3 موقع ایجاد یا روزآمدسازی یک کلید برای درج توضیحات اضافه شده به نام requestBody. این رو باید پر کنید. برای دیدن شرح عملکرد و نحوه پر کردن اون برای نمونه این نشانی (+) رو ببینید.

  55. ali samei

    با عرض سلام ببخشید یه سوالی داشتم…
    سایت هایی که چیز خاصی رو پردازش میکنن مثلا یه متن بهش میدیم و اونو ترجمه می کنه چجوری نوشته شده؟ با جنگو میشه این کار رو انجام داد؟ آخه من دوره جنگو شما رو دیدم ولی تو این فریمورک جایی برای پردازش اطلاعات نداشت

    • مصطفی آصفی

      سلام به شما. ببینید شما در view ها هر پردازشی که بخواهید رو می تونید روی اطلاعات دریافتی می تونید اعمال کنید. برای نمونه این آموزش ساخت خبرخوان با جنگو (+) رو ببینید.

  56. اصغر

    سلام استاد خسته نباشید ببخشید من همش دارم کامنت میزارم😂😂🤦‍♂️خواستم بپرسم من یه دوره درباره امنیت در جنگو دیدم که میگفت از pickle ها و YAML ها و JSON سعی کنید استفاده نکنید چون میتونن باعث باگ های امنیتی بشن و الان که این دوره رو رفتم و اینکه API باید از جیسون ها استفاده کنیم مشکلی از لحاظ امنیتی نداره و چیزیو نباید واسش رعایت کنیم و خیالمون راحت باشه؟!
    دوره هم خیلی خوبه از همین ابتدای دوره مثل همه دوره های کاتلین و جنگو و پایتون تسلط و فن بیان خوبی دارید ممنون از سایت عالیتون

    • مصطفی آصفی

      سلام به شما. می بخشید که جوابتون دیر شد.
      خیر جیسون در مورد API از نگاه کلی مشکل ساز نیست و یک رویه استاندارد هست. برای مثال در حال حاضر خروجی API انواع کتابخانه های گوگل مثلا API نقشه گوگل برای دریافت دایرکشن ها یا لوکیشین ها به صورت JSON هست. خروجی مپ دات آی آر هم که در دوره کیوی (+) با هم بررسی کردیم، همین طور بود.

      شما برای جلوگیری از دسترسی همگانی می تونید کاربرتون رو به صورتی که در دوره هم اشاره کردم، اعتیارسنجی (Authenticate) کنید تا مطمئن بشید فقط کاربر ثبت نام کرده با ارسال یک کد اعتبارسنجی می‌تونه داده ها رو ببینه.

      پی‌نوشت: با وجود توضیح بالا باید گفت که در بحث امنیت هیچ وقت نمیشه با اطمینان کامل صحبت کرد. هیچ سایت صددرصد امن نیست. خیلی خوبه که شما همواره نگاهی به محدود کردن دسترسی و امنیت سیستم API خودتون نگاهی داشته باشید.

  57. اصغر

    سلام خسته نباشید استاد فقط یه سوال اگه این دوره رو بخریم بعدش میتونیم واسه هر پروژه ای از رست فول ای پی آی استفاده کنیم و داخلش وارد بشیم و اینکه یه وبلاگ رو از صفر مسازیم یا میتونیم رو همون پروژه قبلی وبلاگ پوستگر اسکیو الی استفاده کنیم استاد اگه دوست داشتیم از وبلاگی که من ساختم با اموزش شما هم دیدن کنید البته اللن از MySQL استفاده میکنم توش https://the-boy.ir
    میخوام اپ اندرویدشم بسازم با این دوره اگه بتونم😂

    • مصطفی آصفی

      سلام به شما. سایتتون رو دیدم. به به آفرین به شما. بسیار شروع خوبیه. به مدیر اینستاگرام هم رویش (+) گفتم که وبسایتتون رو استوری کنن.
      در مورد دوره Django REST اول دعوت می کنم که حتما با دقت فیلم معرفی و توضیحات و سرفصل ها رو بخونید.
      به طور کلی در پایان یک مثال هم از خوندن API در اندروید با والی زده شده. مفاهیم مهم گفته شده اما نحوه مهاجرت یک پروژه موجود و تولید API از اون خیر توضیح داده نشده.
      چون اهل عمل هستید و دست به کار زدید با این آموزش و البته تلاش خودتون کارهای خوبی می تونید بکنید.

  58. tabvar@gmail.com (خریدار محصول)

    سلام و درود.
    آموزش بسیار خوبی بود.
    فقط یه سوال اینکه :
    یه پروژه ای رو با شما ساختیم و با این تفاوت که برای اعتبارسنجی کاربر از پیامک استفاده کردیم (otp) و روی heroku آوردمش بالا. سرویس ها به طور کامل و صحیح در لوکال کار میکنه ولی از سرور heroku دقیقا موقع فراخوانی وب سرویس پیامکی به مشکل میخوره و خروجی زیر رو نمایش میده:

    Application Error

    html,body,iframe {
    margin: 0;
    padding: 0;
    }
    html,body {
    height: 100%;
    overflow: hidden;
    }
    iframe {
    width: 100%;
    height: 100%;
    border: 0;
    }

    دقیقا مثل این : https://stackoverflow.com/questions/49345226/how-to-call-api-from-heroku
    ممنون میشم اگه به چنین مشکلی برخوردید راهنماییم کنید مرسی

    • مصطفی آصفی

      سلام به شما. لطفا لاگ پروژه خودتون رو به صورت فایل متنی* ارسال کنید ( heroku logs –tail )

      * برای ارسال فایل بعد از بارگذاری در یک آپلودسنتر لطفا للینک بارگذاری رو ارسال کنید.

  59. ابوالفضل حسن زاده (خریدار محصول)

    سلام استاد در راستای این اموزش اگر یک اموزش ری اکت هم باشه خیلی عالی میشه چون من هرچی سرچ کردم به جایی نرسید یعنی رسید ولی اون کیفیت رو نداشت و اصلا درست و حسابی توضیح نمیدادند ممنون میشم یک اموزش در این رابطه قرار بدید.

    • مصطفی آصفی

      سلام به شما. بله آموزش یکی از فریمورک‌های فرانت اندا مثل React یا Vue (+) یا فلاتر برای می تونه مکمل خوبی برای این آموزش باشه. یادداشت کردم که انشالله به زودی بتونیم در هم رویش چنین مواردی رو داشته باشیم.

  60. محمدمتین محمدی (خریدار محصول)

    سلام من به یه مشکلی خوردم
    Watching for file changes with StatReloader
    Exception in thread django-main-thread:
    Traceback (most recent call last):
    File “/usr/lib/python3.8/threading.py”, line 932, in _bootstrap_inner
    self.run()
    File “/usr/lib/python3.8/threading.py”, line 870, in run
    self._target(*self._args, **self._kwargs)
    File “/home/matinmat8/Desktop/q/blog_api/blog_venv/lib/python3.8/site-packages/django/utils/autoreload.py”, line 53, in wrapper
    fn(*args, **kwargs)
    File “/home/matinmat8/Desktop/q/blog_api/blog_venv/lib/python3.8/site-packages/django/core/management/commands/runserver.py”, line 110, in inner_run
    autoreload.raise_last_exception()
    File “/home/matinmat8/Desktop/q/blog_api/blog_venv/lib/python3.8/site-packages/django/utils/autoreload.py”, line 76, in raise_last_exception
    raise _exception[1]
    File “/home/matinmat8/Desktop/q/blog_api/blog_venv/lib/python3.8/site-packages/django/core/management/__init__.py”, line 357, in execute
    autoreload.check_errors(django.setup)()
    File “/home/matinmat8/Desktop/q/blog_api/blog_venv/lib/python3.8/site-packages/django/utils/autoreload.py”, line 53, in wrapper
    fn(*args, **kwargs)
    File “/home/matinmat8/Desktop/q/blog_api/blog_venv/lib/python3.8/site-packages/django/__init__.py”, line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
    File “/home/matinmat8/Desktop/q/blog_api/blog_venv/lib/python3.8/site-packages/django/apps/registry.py”, line 91, in populate
    app_config = AppConfig.create(entry)
    File “/home/matinmat8/Desktop/q/blog_api/blog_venv/lib/python3.8/site-packages/django/apps/config.py”, line 90, in create
    module = import_module(entry)
    File “/usr/lib/python3.8/importlib/__init__.py”, line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
    File “”, line 1014, in _gcd_import
    File “”, line 991, in _find_and_load
    File “”, line 973, in _find_and_load_unlocked
    ModuleNotFoundError: No module named ‘rest_framework’

    • مصطفی آصفی

      سلام به شما. خط آخر این خطا داره می گه که django rest رو پیدا نمی کنه. یا فراموش کردید نصب کنید یا فراموش کردید بعد از نصب به INSTALLED_APPS در تنظیمات پروژه اضافه کنید.

  61. محمدمتین محمدی (خریدار محصول)

    وای وای وای وای و وای ……
    شما عالی هستید
    تو قسمت اول یه دید کلی از پروژه میدید و انگیزه
    بعدش هم اینکه عالی عالی عالی توضیح میدید …
    شما فوق العاده اید
    و همچنین با قیمت های فوقالعاده به صرفه ای منتشر پیگنید آموزش ها رو

    مخصوصا این اموزش که عالیه خیلی خیلی هم کاربردی هست

    در یک کلام شما عالی هستید و فوقالعاده پاسخگو
    فوق‌العاده با انصاف هستید به خاطر قیمت ها

    منونم ازتون🙏🙏🙏🙏🙏

    • مصطفی آصفی

      سلام و سپاس از لطف شما.
      باعث خوشحالیه که چنین انرژی خوبی از دیدن این آموزش در شما ایجاد شده. امیدوارم که در زندگی کاری شما اثرگذار باشه.

  62. مهدی فکوری نیا

    سلام خسته نباشید ببخشید یک سوال داشتم . با توضیحاتی ک دادید متوجه این موضوع نشدم. من همه ی اموزش های مربوط به جنگو را دیده ام و پروژه های نمونه را نوشته ام و کامل هستند . دنبال اینم که این پروژه رو توی سرور پیاده کنم و به محیط پروداکشن ببرم و دامنه بهش اختصاص بدم . ایا این اموزش مناسب نیاز من است؟
    ممنون میشم راهنمایییم کنید

  63. amir.asadi13@yahoo.com

    سلام بر استاد آصفی عزیز،بسیار لذت برم از دوره django خیلی عالی اموزش میدید ،
    یک سوال دارم من میخوام که کاربر یک عکس و یا فیلم برای سرور ارسال کنه و در دیتابیس ذخیره بشه و درصورت نیاز از دیتابیس بخونمش ،اموزشی در این باره دارید ،سپاس فراوان

    • مصطفی آصفی

      سلام به شما. در رابطه با ذخیره در دیتابیس به طور کلی یک روش مناسب این هست که شما فایل رو به صورت ByteString که عملا میشه یک متنی حاوی بایت های فایل عکس در دیتابیس ذخیره کنید. و این نه تنها برای عکس که برای فایل به طور کلی صادقه. البته روش های دیگه ای هم هست اما در پایگاه داده های رابطه ای به طور کلی روش ذخیره بایتی روش مناسبیه.
      در مورد آموزش هم بنده بعد از آموزش جنگو (+) و این آموزش Django REST تعدادی آموزش پروژه محور حرفه ای هم شروع کردم که برای نمونه اولین مورد آموزش پروژه محور جنگو (+) برای یک وبلاگ حرفه ای با PostgreSQL هست. دومین مورد یک شبکه اجتماعی هست که با تصویر هم کار خواهیم کرد. هم رویش رو در شبکه اجتماعی دلخواهتون (تلگرام، اینستاگرام، آپارات، روبیکا یا ایتا) با شناسه HamRuyesh دنبال کنید که به موقع مطلع بشید.

  64. Abolfazl Hassanzade (خریدار محصول)

    سلام استاد لطفا اموزش هایی درمورد فرانت اند نویسی و وصل کردنش به api قراربدید ممنون میشم. منظور استفاده از جنگو رست در طراحی سایت. یا حق.

    • مصطفی آصفی

      سلام به شما. به روی چشم. اتفاقا همین روزها ضبط یک آموزش پروژه محور Angular در هم رویش شروع شده.

  65. سعید

    با سلام اين دوره چند ساعت هست

    • مصطفی آصفی

      سلام به شما. حدود ۶ ساعت هست. همچنین سرفصل‌ها رو از انتهای بخش توضیحات بررسی بفرمایید.

  66. جواد (خریدار محصول)

    سلام ممنون از آموزش خوبتون
    سوالی داشتم ممنون میشم جوابمو بدین
    من در جلسه 15 که میخاین خروجی api بگیرین رو دقیقا با شما جلو رفتم اما نهایتا یک اروری از مرورگر گرفتم
    ممکنه راهنماییم کنید چطور درستش باید بکنم ؟
    ارورم اینه :

    (“Creating a ModelSerializer without either the ‘fields’ attribute or the ‘exclude’ attribute has been deprecated since 3.3.0, and is now disallowed. Add an explicit fields = ‘__all__’ to the postserializer serializer.”,)
    Request Method: GET
    Request URL: http://127.0.0.1:8000/api/v1/
    Django Version: 3.0.5
    Exception Type: AssertionError
    Exception Value:
    (“Creating a ModelSerializer without either the ‘fields’ attribute or the ‘exclude’ attribute has been deprecated since 3.3.0, and is now disallowed. Add an explicit fields = ‘__all__’ to the postserializer serializer.”,)

    • مصطفی آصفی

      سلام به شما. با توجه به این که کدتون رو نمی بینم موارد زیر به ذهنم می‌رسه:
      1- متن خطای دریافتی شما می گه که شما فیلدهای مورد سریالایزر رو مشخص نکردین. دقت کنید که عبارت رو به مدل-سریالایزرتون اضافه کرده باشین:
      class Meta:
      model = YourModel
      fields = ‘__all__’
      2- این امکان هم هست که شما دو مدل رو در یک مدل-سریالایزر تعریف کرده باشین. دقت کنید که هر مدل سریالایزر باید یک مدل رو به عهده بگیره.
      3- گاهی هم تعریف فیلدهای مدلتون اگر موارد خاصی رو مد نظر دارید به صورت یک لیست کافی هست
      class Meta:
      model = YourModel
      fields = (‘id’,)

  67. incode.ir (خریدار محصول)

    سلام وقت بخیر
    من این دوره شما رو خرید زدم
    ولی همه جا میگن برای استفاده از api بجای استفاده از rest api از graphql استفاده کنید
    بنظر شما بهتر نبود دوره api رو با graphql بگید
    ممنون میشم در این مورد توضیح دهید

    • مصطفی آصفی

      سلام به شما دوست قدیمی هم رویش؛
      ممنون از پیشنهاد خوب شما. واقعیت اینه که REST API و GraphQL دو مقوله متفاوت هستند. REST یک معماری هست که بایستی به عنوان مبنا با اون آشنا بشه. GraphQL در حقیقت یک زبان کوئری مبتنی بر نود و گراف برای کوئری زدن و فیلتر کردن داده‌هایی هست که قراره API برگردونه و امروز می‌بینیم که GraphQL هم به صورت ترکیبی یا پوشاننده در کنار Django REST Framework قرار بگیره و هم به صورت مستقل در قالب کتابخانه Graphene (+).
      امیدوارم امسال آموزشی در این باره در هم رویش داشته باشیم که هم مستقل و هم به عنوان مکمل این آموزش Django REST قابل استفاده باشه.

  68. komakkon2012 (خریدار محصول)

    سلام و وقت بخیر – امروز آموزش رو به پایان رسوندم و یک بار هم کد ها رو نوشتم – مدل آموزش مبحثی به نظرم مفید تر و جذاب تره – مثلا منی که با جنگو آشنایی داشتم وکار کردم برام خیلی مفید تر بود که همون اول رفتید سراغ django-rest و دوباره تکرار مباحث اولیه جنگو رو نکردید.کیفیت بیان مطالب هم بسیار راضی کننده بود. فقط چند نکته رو میخواستم بیان کنم.
    1- برای اسکریپت ها پایتونی که مینویسیم (اعم از AI و IP) چه جوری باید برای اجرا در وب سروها و api گرفتن از اون ها کار کنیم؟خیلی خوب میشد مثل همین دوره که پیشفرض رو گذاشتید که جنگو بلدیم – دوره ای رو تدوین کنید با پیشفرض این که مثلا AI و IP بلدیم و میخوایم براشون وب اپلیکیشن مثلا درست کنیم.

    2- الان شما دوره های جنگو و کیوی و api رو برگزار کردید . خیلی خوب میشه یک دوره پروژه محور برگزار کنید با فرض اینه که دانشجو پیشنیاز ها رو بلده و یک پروژه رو از اول برای وب و موبایل آموزش بدید- چون اینگونه آموزش های پروژه محور خیلی دید بهتری برای انجام پروژه های واقعی میده.

    • مصطفی آصفی

      سلام به شما.
      ممنون که برای فرستادن دیدگاهتون وقت گذاشتید.
      هر دو پیشنهادتون به جاست و اتفاقا روی این موضوع برنامه ریزی‌هایی هم برای بهار ۹۹ شده.
      در مورد سوالتون باید بگم که محل نوشتن منطق برنامه (Business Logic) به معماری و الگوی طراحی مورد استفاده بستگی داره.
      گاهی ممکنه با توجه به معماری اپ شما منطق رو در views.py و گاهی در serializers.py -جایی که قراره داده‌ها از JASON به آبجکت پایتونی و برعکس تبدیل بشن- قرار بدین.
      مثلا این مقاله (+) نمونه‌ای از این حالت هست.

  69. مرتضی روستایی

    سلام استاد ممنون از توضیحاتتون
    خیلی لطف کردید
    ببخشید که خیلی سوال میکنم
    فقط با عرض پوزش یک سوال دیگه داشتم اینه که در برنامه شما هستش که یک front مستقل را با backend حرفه ای با جنگو و پایتون در واقع مثلا یک سایت فروشگاهی طراحی شده حالا آنچه که برای بک اند آن نیاز هست را کار کنیم
    ممنون از توضیحات شما

    • مصطفی آصفی

      سلام مجدد، نه اختیار دارید، خوشحال میشم اگه زمان بهم اجازه بده تا حد توانم به شما و دیگر عزیزان کمک کنم.
      در رابطه با موضوعی که گفتین اگر منظورتون یک آموزش پروژه محور برای ساخت یک وبسایت فروشگاهی هست، بله انشالله برای بهار ۹۹ برنامه ریزی می کنیم.

  70. مرتضی روستایی

    سلام استاد
    مظورم از خطا همون سوتالاتی هستش که از تون پرسیدم
    خدمتتون عرض کردم که front سایت را با html , css ساختم حالا میخواهم با جنگو و پایتون back end سایت رو بزنم
    و از بانک اطلاعاتی Sqlserver برای این منظور استفاده کنم مشکل من اینه که دچار سردر گمی شده ام
    استاد امکان دارد که من شما را حضوری ببینم و از تون سوالات م رو بپرسم تا بتونم این پروژه ام را تکمیل کنم یا مثلا شما یک ویدئو تکمیلی بگیرید که طراح سایت front سایت را ساخته حالا نحوه اتصال refrence دادن به جنگو و پایتون و پایتون به html و بک اند سایت و تعریف کلاس ها و اتصال به پایکاه داده sql server اگر محبت کنید خیلی خوب میشه و نه تنها من بلکه بقیه دانشجویان هم هم وارد بارار کار میشوند و هم از این سردر گمی خارج میشوند چون برای چندتا شرکت که صحبت کردم از من این رو خواستن و با دوستان backend سایت نظرشون همین بود من خیلی در ایترنت سرچ کردم متاسفانه منبع کاملی وجود نداشت حتی سایت های خارجی
    اگر محبت کنید و به طریق پروژه محور بک اند سایت با جنگو و پایتون چندتا ویدئو تکمیلی بزار ید واقعا ممنون میشم
    متشکرم از وقتی که برای من گذاشتید

    • مصطفی آصفی

      سلام به شما. در رابطه با فرانت اند سایت در دوره توضیح دادم. در دوره ما تمپلت html رو با هم ساختیم. در فصل سوم هم استفاده از بوت استرپ برای استفاده از تمپلت های آماده اون صحبت کردم. اگر منظورتون این هست که فرانت رو کاملا مستقل بخواهید بزنید مثلا با React یا Vue و … در این صورت بک اند رو باید با جنگو و Django REST بزنید و بعد API تولید شده رو به فرانت اند متصل کنید که در آموزش Django REST (+) توضیح داده شده و یک نمونه هم با فرض این که فرانت اند اپ اندروید باشه اونجا کار کردم.
      برای استفاده از SQL Server باید pyodbc رو نصب کنید. بعد با استفاده از pip کتابخانه django-mssql-backend رو نصب کنید. نهایتا تنظیم موتور بک سایت رو به صورت زیر در فایل settings تنظیم کنید
      ‘ENGINE’: ‘sql_server.pyodbc’
      کلیدواژه های کتابخانه بالا رو باز بزنید مستندات بیشتری پیدا می کنید در این زمینه.

  71. مرتضی روستایی

    سلام استاد
    استاد فایلی که براتو ارسال کردم و حاوی لینک پروژه من بود داخل پروژه من یک front سایت دو صفحه ای با html , css طراحی کردم و دارم با آموزش جنگو شما پیش میروم و الان خدا روشکر در قسمت های آخر هستم
    از شما یک راهنمایی میخواستم اگر محبت کنید و من از این سردرگمی دربیام لطف برزگی در حق من انجام داده اید
    استاد اگر فایل پروژ من رو نگاه کنید من میخوام بک اند این سایت را با جنگو و پایتون بزنم
    حالا سوال اول من اگر بخوام بانک اطلاعاتی خودم را با sql server چیکار باید انجام بدم و ایکه بخش چت آلاین و درگاه پرداخت سایت داخل ای پکیج Django REST برای تولید API با جنگو هست
    الانم من واقعا سر در گم هستم باید چه کار انجام بدم که بتونم یک back سایت با پایتون و جنگو بزنم
    لطفا من را راهنمایی چه آموزش هایی رو بگیرم
    ممون از شما

    • مصطفی آصفی

      سلام دوست عزیزم. بله دریافت کردم ایمیلتون رو. امروز عصر حتما بررسی می کنم و لینک‌های راهنمایی مناسب رو براتون می‌فرستم.
      یک موضوعی هم به طور کلی خدمتتون عرض کنم واقعیت اینه که هیچ آموزشی نمیتونه تمام چالش های ممکن در یک پروژه حرفه ای رو در خودش جا بده. شما باید از آموزش‌ها برای پیدا کردن قلق کار استفاده کنید و بعد خودتون دست به کار بزنید برای موارد بیشتر.
      در آموزشی که توی این صفحه ملاحظه می کنید (آموزش تولید API)، مبانی موضوع و همینطور پیاده‌سازی به صورت عمیق توضیح داده شده اما موضوعاتی مثل چت آنلاین یا اتصال به درگاه پرداخت طبیعتاً داخل بسته نیست تا موضوع بیش از حد طولانی نباشه.
      حالتی که شما الان تجربه می‌کنید کاملاً طبیعی هست کلاً برنامه نویسی حرفه‌ای یعنی هر روز برخورد با یک چالش تازه که چیزی از اون نمیدونیم و بعد چندین روز یا حتی چند هفته تلاش برای پیدا کردن قلق اون. و باز موضوع بعدی و بعدی.
      آموزش‌ برای یاد دادن اصول کار هست و همه هنر مدرس این باید باشه که یک دید عمیق ایجاد کنه و حتی مهم تر این که فراگیر رو به خوداتکایی ترغیب کنه.

  72. jesadax

    استاد این آموزش های جنگو رو قطره ای تزریق نکن همه را باهم در قالب یک بسته جنگو بده واقعا قیمتش داره میره بالا!!!

    • مصطفی آصفی

      سلام به شما. دوست عزیزم مطمئن باشید که انتشار بسته ها به صورت تخصصی و جداگانه برای بالا بردن بازدهی خود شماست.
      هر مبحث رو تحت یک بسته جداگانه جمع بندی می کنم تا مدت زمان هر بسته تا حد ممکن طولانی نباشه و بتونید تا آخر دنبال کنید (به تجربه بنده،‌ 90 درصد فراگیران نمی تونن بسته‌های طولانی رو تا پایان دنبال کنند و نیمه راه دلزده میشن).
      گذشته از این، شاید دوستانی باشن که یک بحث (مثلا طراحی سایت با جنگو)‌ رو بلد باشن و فقط به بحث تولید API با جنگو نیاز داشته باشند. در این صورت آیا باید یک بسته جامع برای یک بحث تهیه کنند؟

      امیدوارم که دوره برای شما و همه دوستان مفید باشه.

  73. رضا

    پروژه این دوره چیه ؟؟
    چند ساعت هست
    توی قسمت عضویت یعنی ثبت نام کاربر با شماره موبایل بدون ایمیل رو میگید و همچنین لاگین و فراموشی رمز عبور و ارسال کد فعال سازی رو با شماره موبایل میگید ؟

    • مصطفی آصفی

      سلام به شما.
      از شما و دوستان دیگه دعوت می‌کنم که فیلم و سرفصل‌های دوره رو با دقت بررسی بفرمایید.
      در این دوره همون طور که در فیلم هم توضیح دادم، یک سیستم وبلاگ ساده رو با جنگو ایجاد می‌کنیم.
      بعد با سیستم Django REST از این پروژه API تولید می‌کنیم.
      سطح دسترسی رو محدود و سیستم ثبت نام با تولید توکن رو یاد می گیریم و بعد از مستندسازی با سواگر، به سرور آنلاین می‌فرستیم.
      بنده همه تلاشم اینه که دوره‌ها هر چه کوتاه‌تر بشن تا فراگیر بتونه همه دوره رو با دقت طی کنه. مواردی مثل ثبت نام پیامکی و اتصال به درگاه رو در برنامه دارم که انشالله به صورت جداگانه‌ منتشر کنم.

دیدگاه خود را بنویسید