Django documentation
https://docs.djangoproject.com/en/3.1/
https://docs.djangoproject.com/en/3.1/contents/
Testing Django very important
https://www.valentinog.com/blog/testing-django/
best easy explain Django: افضل واسهل شرح
https://developer.mozilla.org/en-US/docs/Learn/Server-
side/Django/Forms
Elsafy Hegazy
| شبكة علومOLOMWEB
Muhammed Essa
Python
Python
https://www.fullstackpython.com/django.html (resources)
محمد شوشان
CodingMirror
Mahmoud Ahmed - بايثون بالعربي
https://www.linkedin.com/learning/advanced-web-
development-with-django
https://www.charactercountonline.com/
Make a Location-Based Web App With
Django and GeoDjango
https://realpython.com/courses/make-location-based-web-
app-django-and-geodjango/
LinkdeIN
PluralSight
1. Learning Django [LinkedIn]
2. Advanced Web Development with Django [LinkedIn]
3. Building a Personal Portfolio with Django [LinkedIn]
4. Django Fundamentals [PluralSight]
5. Code School: Digging into Django [PluralSight]
6. Web Development with Django and AngularJS
[PluralSight]
Michael Herman \
https://www.quora.com/profile/Michael-Herman-3
Tango with Django
As a web developer, what do I need to learn after
Django?
How comfortable are you with Django? What have you
built with it? If you’re still new to the framework, I would
focus on building a larger project with it. Some areas to
explore:
1. Developing a RESTful API with Django REST
Framework
2. Practicing Test-Driven Development (TDD) with
pytest
3. Containerizing Django and Postgres inside Docker
containers
4. Adding continuous integration (with a service like
CircleCI, GitLab CI, or GitHub Actions) to test (with
pytest) and lint (with flake8 and black) your code
5. Deploying your app to Heroku, DigitalOcean, or an
AWS EC2 instance
6. Documenting the AP with Swagger/OpenAPI
You’ll learn a lot more if you explore those topics in the
context of building a larger Django project. Think about
some web app that you’d like to build — and build it!
—
Once you have an API set up, you can turn your attention
to the front-end. Learn a bit of JavaScript and pick up a
front-end framework like Vue or React. Containerize it with
Docker separately from your Django app. Create the static
files for deployment and deploy it to S3.
—
Along with languages, it’s always good to learn new
frameworks. When it comes to Django, since it is super
opinionated, you’ll learn the Django way of doing things.
Balance that out by picking up Flask. It’s a lower-level
framework so you will have to do more to get an app up
and running. Maybe you’ll find that more interesting or
more your style. Or maybe you’ll come to appreciate
Django even more.
For more on this, check out Django vs. Flask: Which
Framework to Choose.
—
If you’re looking for some advanced Django material,
check out these books and courses:
1. Django for APIs
2. Two Scoops of Django 3.x: Best Practices for the
Django Web Framework
3. Speed Up Your Django Tests - Adam Johnson
4. Developing a RESTful API with Django, Django
REST Framework, Docker, and Pytest
5. Developing a Real-Time Rideshare App with
Django Channels and React
What are some good advanced Django (>=2.2)
tutorials?
TestDriven.io focuses on teaching how real-world
applications are built, using Test-Driven Development
(TDD).
The blog is full of intermediate to advanced level Django
tutorials (all >= Django version 2.2). There’s also three
advanced Django courses:
1. Test-Driven Development with Django, Django
REST Framework, and Docker
2. Developing a Real-Time Taxi App with Django
Channels and Angular
3. Developing a Real-Time Taxi App with Django
Channels and React
All three courses not only show how to develop the
applications, but they dive into the larger environment as
well, detailing a workflow for building a modern, well-
tested, CI/CD-enabled applications.
Note: I am the founder and author of the first course
mentioned above
I’d also check out this three-part Django project
optimization guide that covers a wide range of advanced
topics:
1. Profiling and Django settings
2. Working with database
3. Caching
Which “remote first” tech companies are hiring Python
web developers and designers?
“Remote-first” is a bit harder to find than “remote-ok”, but
here’s a short list…
Zapier
Catchafire
Compose
Crunch.io
Brane
My company, Real Python, is remote-first. Contact
us!
Check out RemoteOK’s Python jobs section. Based
on the jobs there, you can probably figure out which
companies are remote-first.
Developing a Real-Time Taxi App with Django Channels
and React
Part1+2+3 40$
https://testdriven.io/courses/taxi-react/
Tools and Technologies: (Asynchronous) Python, Django,
Django REST Framework, Django Channels, Redis,
PostgreSQL, JSON Web Tokens (JWTs), pytest
Tools and Technologies: React, Cypress, Docker, React
Hooks
Tools and Technologies: (Asynchronous) Python, Django,
Django Channels, React, Cypress, WebSockets, Google
Maps, Geolocation, React Hooks
Test-Driven Development with Python, Flask, and Docker
Part 1
In this first part, you'll learn how to develop a RESTful
API with Python, the Flask web framework, Flask-RESTX,
and Postgres. You'll containerize Flask and Postgres to run
inside Docker containers and configure Pytest in order to
practice Test-Driven Development (TDD).
Part 2
In the second part, you'll start by
deploying Flask, Gunicorn,
and Postgres to Heroku with Docker. You'll then continue
building the out the RESTful API as you
write unit and integration tests. Finally, we'll look at how
to document the API with Swagger.
https://realpython.com/learning-paths/become-python-web-
developer/
https://realpython.com/courses/make-location-based-web-
app-django-and-geodjango/
Udemy Courses:
Build a Backend REST API with Python & Django -
Beginner
Finally create that App + fully-functioning user database in
this crash course to building a REST API
Build a Backend REST API with Python & Django -
Advanced
Create an advanced REST API with Python, Django REST
Framework and Docker using Test Driven Development
(TDD)
Python eCommerce | Build a Django eCommerce Web
Application
Tweetme | Build a Twitter-like app step by step with
Django
Learn Django 1.10, jQuery, and Bootstrap step by step by
building a real project that works like Twitter!
Build a User Authentication Web App With Python and
Django
Learn To Create a User Authentication System in Django to
Register Users, Log In, Log Out, Edit Profiles, and More!
Python Django Web Development: To-Do App
Learn Database Driven Web Development With Django
and Python!
Build a Stock Market Web App With Python and
Django
Learn Database Driven Web Development With Django
and Python!
Advanced Web Development with Django linkedin
https://www.linkedin.com/learning/advanced-web-
development-with-django
https://www.udemy.com/course/advanced-web-development-
with-django/
Advanced Web Development in Python with
Django
by Andrew Pinkham
https://www.oreilly.com/library/view/advanced-web-
development/9780136552949/
Learn How To
Write tests for Django
Implement authentication in Django
Optimize Django performance
Enhance applications
Enable user media and processing with a Celery queue
Utilize asynchronous Python
Skills:
Website design using HTML, CSS, Javascript
CSS framework like bootstrap
Javascript that is either ES6 or later.
Understanding on how to use a database like Postgres (prefered choice), SQLite, MongoDB,
MySQL
Use of Object Relational Mapping (ORM) like Django's ORM or SQLAlchemey
Learning how to use a templating engine like Django template engine, Jinja2
Learn to use production Web servers like Apache & Nginx
Consumption of API like Sendgrid, Twilio, Stripe, Okata or find it in API marketplace
like RapidAPI
Selecting & using a WSGI server like Gunicorn, Mob_WSGI or uWSGI
How to use a testing framework like Pytest & Unittest to write test cases in Django.
Using a text editor like VS Code or IDE like PyCharm
Setup virtual environment & install packages
Design skills like using Figma or Adobe Xd to create prototypes.
Markdown to write documentation or creates issues in projects.
Become a Django Developer
https://www.linkedin.com/learning/paths/become-a-django-
developer
4 Very important Book
Django Admin Cookbook
https://books.agiliq.com/projects/django-admin-
cookbook/en/latest/
Django ORM Cookbook
https://books.agiliq.com/projects/django-orm-
cookbook/en/latest/
Building APIs with Django and Django Rest
Framework
https://books.agiliq.com/projects/django-api-polls-
tutorial/en/latest/
Building Multi Tenant Applications with
Django
https://books.agiliq.com/projects/django-multi-
tenant/en/latest/
Mahmoud Ahmed - بايثون بالعربي
٣ الدليل الشامل لتعلم دجانجو- ٠١
- ٠٢تحليل المشروع الخاص بالكورس | دجانجو ٣
https://colorlib.com/wp/cat/job-board/
Virtuallenv -p python3.8 Job-Board
لفولد عندي اسموJob_Board
وبعدين بتدخل جوا الملف
Mkdir src
واحط فيه تيمبلت تبعتي اللي حملتها من موقعcolorlib
Change folder name >> Fronted-Template
Create file >> outline.md
Open jobs.html
Take notes from this template as summeery on outline.md
عن طريق هاد المعلمومات اللي جمعتها من صفحة اللي فوق علشان اعرف
اصمم المودل تعبي
+ home and login
انشاء مشروع دجانجو جديد | مشروع علي ال- ٠٣ Github
Open termina from folder SRC
Activated for your virtual environment
بدو يرفع المشروع علىGithub
Then create repository
وهيك بكون ارتفع على قيت هب
Install Django
بسبب انو مربط كل اكواد المشاريع عندو بهيك اسم علشان لمن ينقل حاجه من
مكان لمكان ما يتسبب باي مشاكل عندو
ملفات هدول اللي موجودات في داخل بدك اياهم يكون برا في الخارج معك بتعمل
دوت في الكود
علشان اتاكد انو ديجانقو شغال
حتالقي ملف هادا ظهر
بدنا نرفع المشروع على قيت هب
+10 .. mean upload 10 Files
- ٠٤كيفيه عمل دجانجو من الداخل | دجانجو ٣
فكرتها لو انت عميل مشروع لعميل قبل سنة سنتين بمكاتب ونسخة بتختلف عن
اللي بتتشغل عليه هلقيت وكنت شغال عىل مكتبات قديمة وبينفعش يكون على
جهاز تبعك اصدار اكتر من واحد لكل مكتبة
وفكرتها اني بشغل اكتر من اصدار لبايثون او اكتر من اصدار الي مكتبة
ليش كل ما شغل بتالقيني بفعلها علشان اتعامل جوات المشروع براحتي
طيب كيف بدي اعرف شو المكتبات الللي موجودة في فيرشوال انفيرومنت تبعتي
Pip freeze
داخلها بحدد اصدار معين لبايثون وايضا الصدار المكاتب اللي مودوة بداخلها
بدي اكريت يعني انشأ فيرتشوال انفيرومنت باالسم معين ويشتغل على نسخة
بايثوت معينة
Firstly,Create
Secondly,activate
جواها بقدر اسطب اللي عاوزو واللي بدي اياه من المكتبات
Pip install
Linux >> folder /bin/ windows >> ./scripts/
Very important note that need when create virtual
environment
وبطلع المكتبات اللي كنت شغالها فيها داخل الفيورتشال انفيرومنت في ملف اسمو
Requirements.txt
ديجانفو من جوا متكون من حاجتين
Project and app
يعني كل واحد فيهم بادي وظييفة واحدا Each app / function
App >> home login contact >> design outline.md
كل واحد منهمApp
وحتالقي فولد جواتو فايلز
وشو هادي االملفات lولشو لزمتها
علشان يعملك بكجنق للفولدر كلو >> _init__py
Setting
url
? How Django work
اللي بتطلب المعلومات >> View
طلبت معلومات شخص معين راحت للمودل راح المودل بحث عن في داتابيز
ورجعتلو اياه وبعدين رجعو لليفيوز بتكون راجع تكست وانت عاوز تعرضها
بشكل حلو فبتعتها للفرونت اللي هو تيمبليت
خاص بالمسار اللي بدك تروح فيه url
templateهي
تبعتي اللي حملتها من الموقع
وجمعت منها داتا وعاوز ابدا اصمم هلقيت المشروع ومحتاج داتا هادي تنحفظ
في داتا بيز يعني في المودل
Create apps based on your Design
Uplaod for your Github project
روح على القيت هب حتشوف تعديالت اللي بتصير بالكومنت ماذا يحدث
هلقيت داتا تبعتبي بدي ابدا احطها في داتا بيز
- ٠٥تصميم الداتابيز الخاصه بالمشروع الجزء االول | دجانجو ٣
بتروح في االول الى االعدادات اللي فيها كل اعدادات عن امشروع
لو بدك تغير داتا بيز االفتراضي اللي بكون شغال فيه ديجانقو
Sqlite3
Open this link about connect with database
بضيفapps
تبعتك
لماذا يتم اضفتهم في ملف االعدادات
النو سيرفر اول ما يشتغل بروح عىل ملف االعدادات فلو مش حاطط االاابز
تبعتك ديجانقو مش حيشوفو نهائي
Give you note:
Open DB Browser for SQLITe
Open sqlite.db file >> that is created by default
محتاج انك طبق هذه االعدادات على داتابيز
فعلشان هيك الزم تكتب هذا االمر
روح اعمل تحطيث لداتا بيز حتالقي كل الجدوال
طيب هدول موجودين فين
اعمل تشغيل لسيرفر
/admin
بدك تامن حالك من ناحية سيكيورتي مهم جدا فبتعمل االتي
Create superuser
Admin control panel ( جاهزة بالكامل
If you need to create users with rules or specific permission
Create Group
هادي المعلمومات تبعتي اللي بدي اخزنها في داتابيز في المودلز
هلقيت بدنا نبدا في المودلز
كالس هادي بتكافىء جدول في داتا بيز
جداول في ديجانقو بتكافىئ كالس
واالعمدة فيلد
لجداوال واالعمدة SQL >> Createيعني انت مش محتاج تفتح
خلص انت بتعملهم من جوا الديجانقو
كل اللي بتعملو في اس قي ال ممكن تعملو في ديجانقو
بعمل رفرش في دااتا بيز ولسا انا مش شايفو وينو ؟
حيروح يحول الكود لكويري تتنفذ على داتابيز
قلك بنفع تنفذو على داتا بيز
روح افتح داتابيز حتالفيه
11:19
شوف انت لمن نفذت االمر انشأ ملف اسمو
0001_initial.py
Folder migrations inside ( App >> Job Folder)
Open it
حتالقي الكود اللي حتنفذ الى داتابيز
Appبضيف منو ادمن بتع
في االدمن
APPحتالقي
تبعي حتالقي ظهر في االدمن
html widgetتذكر انو ديجانقو بعطيم هدول تالت صفات lكما هو موضح قصة
- ٠٦تصميم الداتابيز الخاصه بالمشروع الجزء الثاني | دجانجو ٣
Google >> dijnago model fields
Open documentation
Example CharFiled >> string with small size
Large string >> TextFiled
بدك يظهرلك ففقط االحتيارين للوظيفة
اي تعديل بصير في المودلز الزم نعمل االمر التالي الخاص بعملية الميقراشن
App Jobحتالقيه انشا ملف جديد جو مجلد تبع الميقراشن الخاص ب
معناتو انشا فيلد جديد خاص بنوع الوظيفة
Add new filed >> description Text ( 1000 Character)
بدك اطبق تعديالت اللي تمت فيmodel
وبتقدر تصغرو وتكبرو زي م بدك
تعني اخر مرة اتعدلت >> Auto now
عاوز اطبق تعديالت اللي في اموديلز على داتابيز
? Job object
معناتو اني مخد نسخه من لكالس تبع الجوب
ولكن انا محتاج تظهرلي العنوان تبع الزظيفة
Refresh
ولكن فيه حاجه مش مبينه زي
Published_at
Open sqlite DB >> حتالقيها
auto_nowبسبب
لحالو ديجانقو كل ما تنشأ وظيفة حيطعطيه الوقت الذي انشات فيه
تنساش بعد ما تخلص ترفع كل حاجه على قيت هب
- ٠٧العالقات الخاصه بالداتابيز في دجانجو | دجانجو ٣
هناك فيه 3انواع من العالقات lفي ديجانقو
Django model relationship
Examples
هلقيت كل وظيفة الها كاتيجوري
وظيفة موجود في كيتجوري واحدة فقط اما الكاتيجوري مع اكتر من وظيفة في
بتكون هادي العالقة
افهم هدول منيح
Single quotation if your model write after it
اما لو كن تكاتبو قبل عادي بدون سينجل كوتاشن
= on_deleteمعناتو لو مسحت الكتوجري دي امسح الوظايف اللي جواها
models.CASCADE
فيه مشكلة ظهرت ؟
سبب النو مفش كاتيجوري اسمو واحد اللي هي القيمة االتفارضية اللي انت
اعطيتو اياها لمن سالك
هلقيت اعمل كومنت على تبع الفورن كي
وشغل المودل علشان يعملك يضيفلك لكالس تبع الكاتجوري
دخلت على االدمن مش حتالقيها موجودة
علشان لسا انا مضفتهاش في االدمن
Uncomment
انا خلصت lهلقيت عاوز اعرض هادي داتا لليوزر
Viewعمل دالة بتعرض الوظاف وحدا بتجيب تفاصيل تبعت الوظيفة
لتذكير كيف ديجانقو شغال مش في االول بروح للمسار تبعك
مسار االساسي تبعي >> URl
عاوز اربط دالتين تبعت الفيو بالمسار تبعهم
بتروح جوا
Job Folder > >Create urls.py
عنا بقوكل تالت طرق لربط المسار في الفيووز
تستخدم لربط يو ار ال فرعي >> Include
Django url path
بستدخمها علشان تجنب استخدامrequalr expression r
معناتو انو ملف فيوز وي ار ال موجودين في نفس المسار >> . dot
وبتستدعي دوال من الفيوز دالة خاص بعرض الوظايف ودالة االخرى الخصة
بعرض تفاصيل الوظيفة
بنربط كل مسار بالفيوز الخاص به
url >> reach main url ( project ) >> url (jobs) >> path (url)
based on your Views
اللي عامل انكلود لهادا الملف
وبدي اعطي كل واحد مسار علشان افرق بينهم
IDبدي اترجعلي قيمة انتجر من
والزم استخدمها من الفيو علشان لمن افلتر اعرف اجيبلك الوظيفة اللي بدك اياها
بزبط
حروح هيك لكل الوظايف >> /job
اما
هيك بروح لوظيفة معينة >> /1
خلينا انضيف تعيالت على قيت هب
في دجانجو | دجانجو - ٠٨ views ٣كيفيه التعامل مع ال
ممكن بدل استخدام الدوال في الفيوز ممكن عن طريق كالس باستخدام
Class based View
من الفيوز بدم تستدعي دالة لعرض كل الوظايف
كانك كاتب هيك كودSQL >> return all Jobs select *
Google >> to understand it >> Django model QuerySet
بتفاصيل SQLبيجبلك وبشرحلك كيف الكود بتكتبو بتحول لل
Documentationمهم جدا
اهال عالقة باللي بدو يرجع من المودل مع داتابيز >> Render() method
Templateوبدو يروح على
اي فيو الزم ترحجع مع ريندر هدول تالت الحجات
>> Request
صفحة اللي بدك تعرض فيها >> Html template
جوا الفولد تبع الجوب
Create new folder >> templates >> inside it create new foler
>> job >> وجواتها هادي بنشأ صفحات االت تي ام ال تبعتي
صفحتينHTML
هدول صفحات االت تي ام ال اللي عملتهم بدك ضفيهم في مكان
اللي في فيوز )( renderالموجود في >> Html template
contextهلقيت شو هو
jobsهادا االسم
بستخدمو فين
jobsالمتغير اللي برجعو من
بحطو في صفحة االت تي ام ال بهذا الشكل
}}{{
Django template language
HTMLطيب كيف دبك تسغل كود البايثون داخل صفحة
}{% %
}}{{
ولكن مع مالحظة اي حاجه بتفحتها الزم تقفلها
لو ضفت وظيفة تانية
Very important note
Contextيعني
Templateاالسم الي بتعامل فيه داخل
انت اللي مرجعها من داتا بيز >> Dic ( key, value) value
keyبتصير تتعامل فيها عن طريق
templatesمع
}} {{
وعلشان تستتخدم كود البايثون في اداخل
}{% %
وما تسنى اللي بتفتحو الزم تسكرو
هلقيت بدنا نستغل نرجع للوظيفة الوحدا
)(Get
IDهلقيت اعمل ريفرش لصفحة ب
Very important to understand how to use Title
- ٠٩ static files & templatesكيفيه التعامل مع ال
في دجانجو | دجانجو ٣
Static files
Media files
بدنا نوضح الفرق بينهم
settingsهادا بروح ضياف عادات لستاتيك تبعتك في
Media:
Fronted -Template >> بتروح عليه بتحدد ملفاتك لستاتيك
CSS >> fonts >> JS >> Img
نفسه srcبتروح جوا
Create >> static Folder
وبتروح تحط فيه الملفات لتساتيك
بروح هلقيت لصفحات lاالتش تي ام ال تبعون الوظايف
وبعدين بحطهم هان >> App ( job ) >> Templates >> job
deleteبتعمل
للي كنت بتجرب عليهم وبتسمي التش تي امل ال باسمائهم علشان هلقيت تشتغل
على تيمبلت بشكل مباشر
فيه خطأ بسبب االختالف في االصدارات
Run server
frontedحتالقي صفحة تبعت
بايظه خالص
الني مربطش اعدادات لستاتيك بالصفحات لسا
وهي مثال اعمللتها تربيطا مع ديجانقو
Templates syntax error
انت بتستخم لستاتيك بس انسيت تعمللها
Load or register
لحل مشكلة بروح على صفحة اتش تي ام ال وبرح اول اول حاجة وبضيف
} {% load static
حتالقي هلقيت جزء ظهر
inspectوبرتوح تعمل
ملينا اخطاء
كل شوي للتحتها وهيك بتكون علمتهم Ctld + d >> select
لسا دنيا نزبطتش النو لسا ما ضفنا جافا سكربت
Ctrl + D
اعملت ؤفريش بس لسا شكل ما ظهرش
ناسيين هادي
ظهر الموقع
مش محتاج اضلن اعيد كل شغل اللي اشتغلتو على صفحات lالت تي ام ال
بدي اخليها تورثو من صفحة اللرئيسية اللي اشتغلت عليها
في كل صفحات اللي عندي بعد كدا
-١٠كيفيه التعامل مع الصور وطرق حفظها في دجانجو |
دجانجو ٣
لو فتحت صفحة الخاصة باتفصيل تبعت الوظيفة حتلقيها لسا بايظه علشان لسا ما
ربطت لستاتيك تبعها
بدل ما اقعد انسخم بصير اورثهم
jobبرا
Create new folder >> templates
بقوم ناسخ صفحة اللي انا اعملتها االساسية
وبروح جوا المجلد تبع تيمبلتس
بعمل ملف بسميه
Base.html
وبحط فيه الكود االساسي علشان اصير اورثو
سييبو ما هو في كل صفحات ثابت Header
هدول محتاج انا اشلهم
Block bodyواعوض بدالهم ب
jobهلقيت برجع لملفا االتش تي ام ال تبع
Baseوبشيل كل حاجه ممكن تورثها من
Baseمحتاج هلقيت اعطيها اللي ناقصها من
block bodyوبحط اللي محتاجو للصفحة بين
settingانت اتاكد انك تايمبلت ضايفها في
علشان يوخدها من الفولد تبعت التايبملت اللي موجود في الخارج
حتالقيها ظهرت صفجة بدون مشاكل
وبروح هلقيت بزبط باقي صفحات
/1 >> open without any problem ( job details.html)
محتاج احط للجوب صورة
وين من المودل
ما زال عدلت في المودل انت محتاج تعمل الميقراشن
اظهرلك مشكلة
Run this command
settingsبتروح على
mediaبتشوفو ليش ما عمل فولدر للميديا
هلقيت لو رحت بعد ما عملت
Run server
صورة محفوظة في ملف ميديا
customize image nameلو عايز وانت تعمل ابلود تغير اسم صورة
ححعمل دالة الها حتوخد منك حاجتين االنستانس اللي هو الوبجيكت اللي بتعملو
ابلود واسم صورة
بدي اخلي دالة دي هي تتولى مسؤولية رفع الصورة
جبت هيك اسم صورة لوحاد واالكستنشن لوحده
Create folder ( ID of instance )
This is advance note
Remove media folder >> admin >> upload image
%s/%s >> string formatting python
Remove media >> refresh after upload image
Per ID
بس ال يفضل انك تعمل لكل وحدا فيهم مجلد
يفضل باالرقام النو بتكون عملية بحث وفلتر بشكل اسرع
في دجانجو | دجانجو - ١١ frontend ٣التعامل مع ال
عاوز ارجع المعلومات هادي من داتابيز واعرضه في صفحات ات تي ام ال
inspectروح اعمل
على اي وظيفة
DIVعلشان احدد
عاوز امسح كل هدول واسيب وحدا بس
اعمل ريفرش مش حتالقي اال وظيفة وحدا
بدنا نعمل لوب على الوظايف
اعمل ريفرش حتالقي ظهر الوظيفتين
بدي هلقيت اخليها توخد االسم الوظيفة
بدي ازبط اخليه يعرض الصورة
Very important note
بدي اياه كمان يبين الي الوظيفة فل تايم وال بارت تايم
بدي ازبط التاريخ
Django template date format
علشان عاوز اعرض تاريخ بشكل محدد
Very important note : how to return data with specific
عاوز هلقيت لمن اضغط على اسم الوظيفة يعطيني تفاصيل تبعتها
IDما ادخلش انا مباشرة ب
بتروح تحدد اسم الوظيفة داخل تيمبلت ات تي امل ال تبع الكود
urlبتةرح بتشوف مسار
اللي بدك تعطيه اياه
هلقيت بس انا عاوز ارةح لوظيفة واحدة فقط
كلو urlمحتاج اعرف طريق
من االساسي للفرعي
url >> nameبدك تعطي
علشان لمن تستدعيه او تستخدمو
urlوبعد هيك عاوز اروح
الفرعي تبع تفاصيل
االساسي بتمسى اسمو ب url
Namesapce
الفرعي urlبينما
nameبتسمى ب
urlاسال نفسك سؤال وانت بتربط ب
تبعك بيوخد باميتر وال لء urlانو
IDعلشان لمن يفتحلك الوظيفة يبعتلك ب
Pass ID when click
Very important to understand it >> syntax write
جابلي مشكلة
االلي انت بنيته App nameبتعطيه
ادخل عىل الوظيفة حتالقيق االمور تمام
inspectلو عملت
على تايتل حتالقي
مربوط فيه ID
detailsبدي اعدل االسم تبع اوظيفة داخل صفحة
contextانا مرجعها من
jobباسم
كمان تعديالت
job summeryبدك تعدل في القائمة اللي على جنب اللي فيها
بدنا انعدل هادي عدد الوظايف
Search >> Count
Django template filer count
Very important note: to count number of jons
التعامل مع ال- ١٢ pagination ٣ في دجانجو | دجانجو
بدي في كل صفحة اكم وظيفة يعرضلي
صفحة اللي حترجعو الك
حلو تمام بس كيف بدي اروح لصفحات تانية فازم اضيفها في
HTML
علشان نعرض في صحفحات lتانية
كل شغلنا حيكونفي المنطقة هاد
حتالقي زر هنا اختلف علشان فصفحة االوى ظهرلك زر اللي خاص بالصفحة
تانية
ولكن لو ضغطت عليه حتالقيه مش شغال
الحل انو احنا بدنا نعمل لوووب
عاوز افعل هلقيتurl
الخاص بكل صفحة
Revision from documentation
ولكن لسا فيه ضايل مشكلة
الها عالقة بالشرط اللي عندك
في دجانجو | urlوظبط ال - ١٣ slugكيفيه التعامل مع ال
دجانجو ٣
url after slash /علشان يظهلي اسم الوظيفة في
slugيعني انا بربط ل
titleب
ما تنسى علشان عدلت على مودلز ما تعمل
Migration
روح على لوحة تحكم حتالقي
slugانا محتاج هلقيت لمن اعطيه العنوان يوخدو لل
لمن اعمل حفظ
override on main save process that exist on modelبدي اعمل
فبدي اعمل دالة لسيف داخل المودلز
Very important note:
روح على لوحة تحكم واعطيه اسم الوظيفة اوعمل سيف حتالقي
Slug
اخد اسم الوظيفة
slugولكن بدي يعمل سالش بين الكملمات باستخدام دالة من
Slugify
slugبدي هلقيت استخدم
تبعي urlفي
فبروح هلقيت علىurl >> pass instead of ID >> Slug
فيه مشكلة لسا
Slug with HTML
انا متاج سلق بدل من االي دي
اضغط على الوظيفة هليقت االمور تمام
وهذا افضل للSEO
يعني تعديل علشان يتمslug
تم بهذا الشكل
Very important note:
Slug on model >> to save from admin panel with DB and link
with title
Then make save override function on model to take title for
slug
Then Go to view >> pass slug and Filter with it
Then Go to URL >> pass Slug(string)
Then Go to HTML >> instead send with ID pass Slug
ضايل فقط مشكلة فهذا سطر لسا علشان ببعت بID
مش بSlug
في دجانجو | دجانجو - ١٤ form ٣كيفيه التعامل مع ال
بدي اعبي طلب تقديم على وظيفة
modelبدي اعمل
خاص بالناس اللي بدها تقدم على الوظيفة
هيك جهونا الجزء الخاص بالمودل اللي هو بدو يتعامل مع داتابيز
الخاص فيه __ __Strوبتعطيه
وما تنسى ما زال عدلت على المودل تعمل
Migration
adminوبترح هلقيت بضيفها على لوحة تحكم في
Formsعلشان تعامل معها في الموقع الزم اتعامل مع
انسيت تحدد نوع اعالفقة ومع مين مربوط من الجدوال
يعني هلقيت انت لو قدمت على وظيفة مفروض يكون مربط بالوظايف شو
حتكون العالقة
بعد ما تعمل ميقرات للتغيرات االي صارت في المودل
روح على االدمن حتالقي بجيبلك شو الواظيف اللي الزم تقدم عليهم في الكنترول
Forms:
حلو بالفورمس انها هي داتا الموجود بالفورم هي االي بتبعتها
وبتعبتها عن طريق حاجتين
داتا بتكون مبعوته ولكن ببتظهرش في االرسال يعني بتكون مخفية POST ::
لوكن هان بتكون ظاهرة GET:
POSTلمن تقدم وبتعت بيناات الفورم
GETبينما لمن تعمل فلتر علشان تظهر بيانات بتعمل
POST Data from FORM >> Django >> Save DB
) App ( jobبتروح جوا
بتنشأ ملف خاص بالفورم
ما تنسى ضيف تاريخ الوقلت اللي كل واحد قدم فيه
Very important how to create and handle with form.py
بدي اخد هلقيت الفورم واعمللها
Pass to view
Detailsمحتاج اعملها انا وين في
POStهلقيت سينايرو يا اما ضغطت
يا اما بعتتها فاضية
If press on apply button >> mean POST
وازا ما ضغطت نفذ حاجه تانية
Go to Template:
حتالقي مفش فيهاmethod
في نوعين عنا منالفورم فيه ممكن تبينه من ديجانقو
templateوممكن تبنيه من
هيو فاضي
عاوز ازبط شكلها كويس
Django Bootstrap 4
settingبتروخ على
تبعت المشروع كلو وبضيفها
شوف هلقيت شكلها
buttonوحط زر
تحت الفورم
POSTهلقيت بدي اتعامل مع داتا اللي جاي من
form.pyتذكر الملف اللي انشأته
اللي فيه االتي
passبدك تعملي هلقيت
للحاجات lاللي عبيتها في الفورم
request.POSTعن طريق
فيه مشكلة انو لسا موصلش
Pass >> request.FILES
سبب المشكلة انو الفورم
not validوكمان انت ناسي تحط الوظيفة كا هو موضح
تذكر انك محتاج لمن ترفع ملفات انك
Pass >> FILES
وايضا في الفورم نفسها كمان انت محتاج
Pass enctype
بتروح على لوحة تحكم بتالقي البيانات lانضافت
POSTاي انعمللها
هيني بدي اعدل واشيل الوظيفة علشان بدون يقدم على الوظيفة مباشرة من
اللي جنب الوظيفة Apply
- ١٥اضافه وظيفه علي الموقع | دجانجو ٣
Frontedبدي اروح الى مجلد
واجيب منه صفحة اللي بضيف منها وظيفة
بتحضر دالة تبعتها في الفيو
urlبدي بغعدين اروح على
اعطيه المسار تبعها
/add
واربطها بدالة الخاصة بها من الفيو تبعها
مالحظة مهمة جدا جدا
Very very important
كانها اسم وظيفة من addالنو حيشوف
Slug
قبلها addفبتحط
job addمكانش فيها صفحة
من صفحة ونسخها عليها htmlاخد
وما تنسى المسار اللي بدك اتحطها فيه الخاص بالتميبلت تبعت الوظايف
Templates/job >> ad_job.html
وهلقيت بتعطي الفيو صفحة مسار االت تي ام ال
اعمل على لينك في المتصفح حيجبلك مشكلة
HTMLهي شويت تعدالت داخل صفحة
بدي اعمل فورم للوظيفة
هلقيت بدي اعطيه الفيلدز اللي بدي اتعامل معاها
____all
هيك حيوخد كل الفيلدز اللي موجودة في المودل
بدك تعملها امبورت في الفيوز من الفورم
هلقيت لمن تضغط على زر الها حالتين يا حيبعت بوست يا بضل فورم عادي
form not >> form1 as writeانتبه االسم اللي بترجع فيه
Slugبديش اياه يرجعلي ل
شوف هلقيت مش حتالقي موجود
انسينا بدنا انضيف الشخص اللي بضيف اليوزر
quickاضغط على يوزر اللي تحتها خط اصفر بعدين على
بس االونر هادا شخص بنفعش يظهرويبين مين اللي ضاف الوظيفة
بدي اعملو من الفورم اكسكلود
save >> pass userبصير لمن اعمل
مش محتاج انك تحفظها على داتا بيز >> Commit=False
pass OWNERالني محتاج اعمل
اللي ناشر الوظيفة
فيه مشكلة
شوف هليقت لمن انت ضفت الوظيفة
حيبين اللي ضاف الوظفية اللي هو االدمن علشان انت شغال فيه
فيه حاجات فنيتا بتنحل عن طريق انك تعمل امبورت عن طريق
Quick Fix
االساسي urlاوال بتعطيه هادي اللي هي من
projectاللي جوا مجلد
الفرعي هادا urlوبعدين بتروح
وهلقيت صار معي المسار كامل وبقلو لمن تعمل
Save >> redirect reverse
- ١٦ login , logout , passwordاضافه ال
الجزء االول | دجانجو change ٣
Google >> Django user authentication
Best explain :
url >> االساسي
Built in Djnago
127.0.0.1/8000افتح في المتصفح/accounts
كل هدول موجودين بس لمن ضفت لينك واحد بس
Create folder inside Account Folder
Folder Templates/ inside it >> new Folder registration
Page >. Login.html
Logout.html
Password_reset .html
Password reset done
Password_change_form.html
هادي صفحة انت بتعملها
هلقيت مشكلة بسبب
>> accountتبع App
settingsمش محطوط هنا في
بتعدلها من
Base generic >> Base.html
هيها ظهرت
APPمشكلة بسبب انو بعرض براعي الترتيب وهو بعرض من
accountتنقل
فوق قبل كل شي
urlوكمان تحصل هادي المشكلة في
accountتنقل المسار تبع
adminفوق
Base generic >> Base.html
ولكن صفحة شكلها مش مزبوط
بنعمل صفحةbase_generic.html
Revision video 11:45 min:14:00
عمل تعديالت في صفحات بخصوصhtml
بدي اقعد ازبط دنيا كلها بنفس لستايل
- ١٧ login , logout ,اضافه ال
الجزء الثاني | دجانجو passwordchange ٣
عاوز اضيف باقي صفحات lعلى نفس شكل
تعديالت علشان شكل يزبط
Base generic
Content
Bootstrap
وشكل زر االخضر
Sign up
appتذكر كل
urlالو
الخاص فيه
اعطيه المسار واربطو بالدالة تبع الفيو
modelبدنا نروح نصمم في
الزم يكون بين وبين اليوزر ريالشن >> Profile
بدنا نقسم شغل اليوزر لنصين
نص حينعملو حفظ في اليوزر والنص االخر في البروفايل تبعي
فالزم يكون فيه ريالشن بينهم
شو نوع العالقة حتكون
One to one >>> النو اليوزر الواحد
له بروفايل واحد
Django phone filed
Django City Field >> Countries
ما يعملsign up >> Create user >> empty >>when complete
profile >> User Done Created.
فمحتاج انا اول ما ينشأ يوزر ينشأ ايضا بروفايل له
Django Signals
Pre_save and post_save
معناتها قبل ما تعمل حاجه وبعد ما تعمل حاجه
معناتو انو دالة هادي حتكون ريسيفر يعني هي اللي حتستلم
بعمل ما تنشا يوزر حينشالك بروفايل
Refresh admin
حتالقيهم ظهرو
معانتو اول ما تنشا يوزر حتبعت سيجنال لدالة دي حتروح توخد اسم اليوز تنشال
له بورفايل
فيه مشكلة ظهرت بقولك
City
الزم توخد قيمة
عاوز ارجع اسم اليوزر
كانت هيك قبل
__ __strولمن ضفت
اخد االسم
في دجانجو | دجانجو - ١٨ signup ٣اضافه ال
بدك تعدل في المسار االساسي
االتنين بنفس االسم النو اتنين بلبو نفس الغرض
built in Djangoواحد بجيب الحاجات lاللي
واحد بجيب الحاجات lاللي انا بدي اياها
Refersh
signupحتالقي
انضافت
forms.pyانشالي ملف
App accountsداخل
بتعمللهاimport >> View
وبنسخ كودhtml تبعlogin
لملفsignup.html
وعندي حالتين يا اما تعمل خفظ او اتسيبها فاضية
عاوز شو علشان احدث سيشن واعمل لوقن
username and passwordمحتاج
>> Loginوكمان ازا االنثونتكاشن صح اعمل
import > authentication and loginما تنساش تعمل
وديني على البروفايل تبعي >> >> redirectاعملي
Very important ::
حتالقي اليوزر اللي انشاتو
الخاص بالمستخدم في دجانجو | - ١٩ profileاضافه ال
دجانجو ٣
View >> Sign up
Url >> Sign up
انشوف فيه صفحات lلليوزر >> templatesبدنا نروح على
مفش بدنا ننشأاي صفحات
بدنا نعمل امبورت للفروفايل
عاوز اجيب برفوايل اليوزر الحالي lاللي عامل لوقن
وبدعين بتحطيه الباث اللي بدها ترجع في داتا جوا تمبلت تبع االتش تي ام ال
مع الكونتست تبعو
Create new folder accounts >> inside templates
وبنتعملك فيه صفحتينhtml
بدك تنشأ صفحاتHTML >> profiles
Very important note:
>> انا مرجع من الفيوContext تبعي اللي هو
وبترجع كمانattribute based on your Class (inside Model)
للتذكير فقط
contextاللي في االسفل االي لزمني علشان اعمل هيك اسحب من
Refresh
وهادي مالحظة مهمة
Very important note:
Profile.user.email
انت رحت للمودل تبع اليوزر اللي هو جوااه االيميل
وتذكر كمان انو معلومات اليوزر عندي معملوهم حفظ في اتنين مودلز
اليوزر والبروفايل
علشان اكسيس اي حاجه جوا اليوزر
اسم االوبجكيت تبع البروفايل وبعدين يوزر
بعدين اي فيلد من اللي هنا
هلقيت بدنا نضيف زر لتعديل البروفايل
حاجه مهمة انك بدك تتعامل مع اتنين فورم في نفس البيج
الخاص بالمستخدم في - ٢٠ profileاضافه التعديل علي ال
دجانجو | دجانجو ٣
تذكر معلومات اليوزر مقسومة في دولين جزء في يوزر وجزء في البروفايل
الزم تنعمل عن طريق اتنين فورم
طيب هان في مالحظة مهمة جدا
forms.modelformلماذا هادي وراثة من
UserCreationFormمعنو اللي فوق وارثه من
بتورثه منو علشان ليوزر الو باسورد محتاج ينعملو
Encryption and hashing
وبس الزم ديجانقو هو اللي ينشأ اليوزر
بينما اللي تحت مجرد فورم عادية
Editوهلقيت بدك تعطيه الفيلد اللي محتاج تعمللها
بدك تعمل كالس خاص ب البروفايل فورم
وبتورث من الفورم العادي
بدك تعمل امبروت للفروم داخل الفيو
وبدل ما اكتب الفروم سطر واحد حتكب اتنين فورم
عاوز اول شي اجيب اليوزر اللي عمل لوقن اجيب البروفايل تبعه
Context:
وبضيف كمان فورم
اعمل ريفرش حتالقي لتنين فورم
اليوزر اللي عامل لقون حاليا >> Instacen=request.user
البروفايل اللي نت جايبو من فوق لسا >> Instance=profile
passحتالقي المعلومات ظاهر هنا كانك عامل >> Refresh
لمعلموات المستخدم الشغال حاليا مع معلومات البروفايل
صحيح cityبدنا نرجع اسم
city object 1 >> solution __str__ for your modelمش
Check two form are valid >> Save
>> بدك تروح توخد داتا اللي راجعه من الفورم لمن اعملت حفظ للفورم
request.POST
Validبعدين بتعمل عليهم تشيك انهم
userاعمتلها علشان امررلها >> Commit=Fasle
شخض اللي عامل لوقن حالياRequest.user >> l
بدك بعد هيك يعمل رايدايركت للبروافيل تبعك
import >> reverseوما تسنى تعمل
فيه حاجه لسا ناقصه عندي وهي صورة
علشان لمن تيجي تعدل صورة تعدل معاك
HTMLبدك اضيف لينك في صفحة
االساسي urlبتجيب
وننجيب اليو ار ال الفرعي
parametersبتتاكد هلقيت هل اليو ار ال بيوخد منك
Refresh click on edit profile
| - ٢١ Login_requiredاضافه اللينكات في الموقع وال
دجانجو ٣
base >> inside templateافتح ملف
Browse Jobاعملت صفحة
يعرضلك الوظايف
تنساش ملفurl
>> الخاص بContact APP
وبروح على الفيو تبعView of Contact
Create function >> send message
>> HTMLوبتعطي صفحة
تبع ديجانقو url
اتذكر اول شي االساسي بعدين الفرعي
ةاعطي كمان لوقن صفحة تبعت او الماسر تعب اليو ار ال الخاص به
من االساسي ثم الفرعي
هو شخص لو مش عامل لوقن بقدر يضيف وظيفة
الزم شرط يكون عامل لوقن
وبتعطي المسار البثا تبع اليو ار اس للبوست جوب
والن مفروض تكون عامل لوقن علشان الوظيففة ينعمللها حفظ
Go to App(job) >> View
decorator built in Djangoبعمل فنشكن تاني بس ك
بطبق عليها شويت حاجات lعلشان تتنفذ
decoratorبتعمل فنكشن تاين بيها شروط ك
Refersh without login >> will be go to Login Page
بدي كلمة لوقن تشنال وينضاف بدالها كلمة بورفايل
Very important note:
بودي اعطي كلمة البروفايل الباث lيعني مسار اليو ار ال تبع البروفايل
يعني لو ضغطت عليها حيودينا لصفحة البروفايل
للوظائف في المشروع | دجانجو - ٢٢ filter ٣اضافه
Django filter >> Github library
بتساعدك تعمل فلتر من خالل اكتر من شي
علشان نسهل الشغل
Install >> then (app of Setting)
Create file >> filter.py
وين بدي احط الفلتر في البيج اللي بتنعرض فيها الوظايف
وين الفيو اللي بتعرض كل الوظايف
run server >> Logاعمل
error >> solve it before proceed.ازا فيه ازا فيه
excludeاعمل
job_listكل الوظايف وين بترجعلي في
حيوخد مني ريقوست jobFilter
paginatorهة صح انو يطبق قبل
htmlعلشان بدي اتعامل معاه في صفحة >> contextوعاوز ارجعو في
عاوز اروح للمكان اللي فيه فلتر
بتعطيهcontext and change action for method=GET
علشان انسينا انقلو
Myfilter.Form
يظهر slugبديش
excludeبروح على
ownerكمان
رجع علىdocumentation
بسبب قصة لمن بحث داخلdscription >> search Django word
كمان يحتوي على titleو
Django Bootstrapبدنا نطبق معاها
صار شكلها حلو
وارسال رساله جي ميل - ٢٣ Contact Formاضافه ال
في دجانجو | دجانجو ٣
HTMLزبط هلقيت صفحة
) APP ( Contactسبب في كل مشكلة انو مش محطوط في
هيها اشتغلت صفحة تمام
modelمعلومات دي ممكن اعمللها مودل
contactتنعرض من
migrateما زال عدلت على مودلز ما تسنى تعمل
معلمومات هادي عاوز اضفيها في االدمن تبع ديجانقو
عاوز هلقيت اعرض المعلومات هنا
بتروح على الفيو
Contextوبتستدعي ملعومات من صفحة االتش تي ام ال ب
تنساش تغير كمان االيميل
عاوز اتعامل مع ايميل سيرفس >> Send message
بدك تزبط الكونفقراشن لكل ميل سيرفس في االول في االعدادات الرئيسية
Project >> settings.py
Google >> Django sending email
keyناقصني
keyكيف بدي اجيب
Generate password >> take it for Key
بمهمنيmethod
تكونPOST
محتاج تحطلي هلقيت رسالة واالميمل
ما تنسى االسماء علشان بدك تتعامل معهم في الفيو
وانا في الفيو عاوز اجيب المعلومات دي
Very important note:
علشان تتاكد وشتوف دنيا شغاله
printاعمل
CSRFما تنسى حل مشكلة
بدنا نبعت رسالة على جي ميل
Contact form send to Gmail
مقدمه عن ال- ٢٤ Django Rest Framework |
٣ دجانجو
بعد ما نزلها بنضيفها فيinstalled APP ( project >> Settings)
بدنا نضيفurl authentication >> urls.py
/login
Google image >> REST Famework works
متاج ارجع داتا دي على شكل جيسون
JSONهي شكل
APIليش بستخدم
react VUEعلشان لو دبي اتعامل مع الفيرمورك تبعت الجافا lسكربت زي
angular
واالهم في استخدام اني اربطها في الموبايل
تطبيق موبايل اب اني اتعامل معاه
apiيعني الجسون اللي بطلعه من
بتقدر بعد هيك تستخدمو لربط في الموبايل او مع الجافاسكربت فيرمورك
APIيعني انا محتاج
JSONفقط علشان محتاج اطلع داتا
AJAXطيب ما في عنا مكاتب جاهز بطلع جاسون ل
REST Freamworkوطيب ما زال هيك ليش انا محتاج
authentication and securityبسهل علي حاجات كتير في
وايضا سهولة شغل
APPبروح لكل
وبنضيف ملفين جداد
وهادا عبارة عن الفيوز Api.py
بوخد داتا من المودل وبحولها لجيسون Serializers.py
APIوبدي اعمل فيوز خاص ب
بصير ارجع حتى لو بدك ترجع وظيفة واحدا على شكل جيسون
APIبعمللها فنشكن في
Django Restفي - ٢٥ Serializerانشاء
دجانجو Framework | ٣
بدنا نعمل امبورت للسترايليز
api.pyبدي اروح على
اللي عندي sterazliaerهلقيت استخدم
عن طريق قنكشن
APIاعطيه المسار اليو ار ال لل
تنساش تصيحيح المسار
Api.joblistapi
Function based view
عاوز ارجع كل الواظيف
/job/api/listبتروح على متصفح
بدك لفيو نتيجة تبعتو ترجع بGET or POST
Very important note:
مراجعة في االول بدي اعمل ملفين
Serilaizer >> model >> Fields
Api >> as the same View >> Function return all jobs >> pass
for serialzier >> to return it (JSON)
وعلشان داتا كتيرmany=True
وبعدين بضيفURL
استخدام ال- ٢٦ function والGeneric Views في
Django Restframework | ٣١ دجانجو
HTTP Methods
علشان اعدل Put
كيف بدي ارجع وظيفة واحدة
rst apiعلشان اتعامل مع
api.pyاللي هو apiهنالك 3طرق مش شرط الفنكشن في الفيو تبع
Function based views
اسهلهم
تعديل اسهل واسلس
لو معقد كمان افضل
Class based view
تستسخدم في تطوير
Viewsets
بيعملك كل حاجه apiيعني
وهي اسلهم ولكن لماذا ال تستخدم
customize itصعب النك
ID then Slugاول شي بدنا نشتغل ب
بتحط في المتصفح علشان ترجع لوظيفة
127.0.0.1:8000/jobs/api/jobs/1
Generic viewsهات انجيب
اعمل امبروت لللجينيرك واعمل اتنين فيو
وخلينا هلقيت نعرض كل الوظايف على شكل جينيرك فيووز
سوف تستسخدم لعرض كل الوظايف اللي عندي وحتورث من جينريك
بنزبطلها المسار تبع اليو ار ال
تستخدم لتعبر عن دالة من لكالس تبع الفيو >> )( as_viewمالحظة
/jobs/api/v2/jobsلمن شغل في المتصفح جابلو مشكلة
وهي كمان مشكلة
seritalizer classهادا بقولك انو الزم اتمررلها
مالحظة هنا انو احنا مكتبناش كود كتير زي قبلL
documentationوكل الكالم اللي فوق من
بدنا انجرب نستخدم واحد منهم
اللي هي
Retrieve update Destroy APIView
بعدين بتعطيها المسار الخاص بها
url >> IDعلشان خاطر اقولو اللي برجعلك من
url >> pass idتذكر النو
ولكن الحظ هنا
وكمنا الحظ تحت في فورم منه تعدل
النو هادا جينيريك
رجع >> Retrieve
عدل >> Update
امسح >> Destroy
في الطريقة عادية مكانش فيه كدا
urlشوف هلقيت هادا
برجعلي وظيفة واحدة وبدقر اعمل تغير وبقدر امحيها
class based viewشفت ميزة
very important note:مالحظة مهمة جدا جدا
اقدرت عن طريقو فتكشن واحدة
تعمل تالت حاجات
شوف صو بدي يصير لمن اضيف
ListCreateAPI
شوف شو اظهرلك
فورم تقدر منو اضيف وظيفة
علشان تنجز شغلك تبع بثواني >> Class based view
افضل واسرع وكل شي جاهز
Very important note
وهي من اوقى االحاجات lاللي ممكن تشتغل بيها
كيفيه استخدام ال- ٢٧ postman | ٣ دجانجو
افضل تول التي تستخدم علشان تستAPI
POSTMAN
After installed
Right >> Create new Collection
Inside it > Create Folder ( job)
حتالقي فيه كلAPI
الخاصة بالجوب
urlانسخ
اللي انت شغال فيه
تبعته methodحدد نوع
sendاعمل
حتالقيه رجعلك كل المعلومات
خد نفس لينك وافتحو وفنيو تاب
POSTوغيرلو الميثود وخليها
وبتقدر عن طريق تبعت داتا
method support through APIكيف دبك تعرف شو نوع
ومن هنا بضيف المعلومات
وبعدين بتروح تعمل حفظ للجوب
فحتالقيه ظهلك على جنب
بدك تغير اسم العنوان
postوبدنا نعمل حفظ لتاب تبعت
حتالقيه ظهرلك مشكلة
وهيك اشتغلت تمام
31/Aug