# دليل المبتدئين إلى Django: بناء تطبيق الويب الأول الخاص بك بسرعة
Django هو إطار عمل ويب Python عالي المستوى، يهدف إلى التطوير السريع والتصميم النظيف. يتبع بنية النموذج-القالب-العرض (MTV)، ويشجع على إعادة استخدام التعليمات البرمجية والتصميم المعياري. سيرشدك هذا الدليل خطوة بخطوة لإنشاء تطبيق Django بسيط، مما يتيح لك البدء بسرعة.
## 1. إعداد البيئة
أولاً، تحتاج إلى التأكد من تثبيت Python على نظامك. توصي Django باستخدام Python 3.6 أو إصدار أحدث.
### 1.1 تثبيت Python
إذا لم يكن Python مثبتًا على نظامك، فيمكنك تنزيله وتثبيته من [موقع Python الرسمي](https://www.python.org/downloads/).
### 1.2 إنشاء بيئة افتراضية (Virtual Environment)
لفصل تبعيات المشاريع المختلفة، يوصى بشدة باستخدام بيئة افتراضية.
1. افتح Terminal أو موجه الأوامر.
2. قم بإنشاء دليل مشروع، على سبيل المثال `myproject`:
```bash
mkdir myproject
cd myproject
```
3. قم بإنشاء وتفعيل البيئة الافتراضية:
```bash
python3 -m venv venv # أو python -m venv venv
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows
```
بعد تفعيل البيئة الافتراضية، سيظهر `(venv)` في موجه الأوامر الخاص بك، مما يشير إلى أنك تستخدم البيئة الافتراضية.
### 1.3 تثبيت Django
في البيئة الافتراضية النشطة، استخدم pip لتثبيت Django:
```bash
pip install Django
```
تحقق من نجاح التثبيت:
```bash
python -m django --version
```
يجب أن تكون قادرًا على رؤية رقم إصدار Django.
## 2. إنشاء مشروع Django
بعد تثبيت Django، يمكنك إنشاء مشروع Django جديد.
1. لا تزال في دليل مشروعك (`myproject`)، قم بتشغيل الأمر التالي:
```bash
django-admin startproject mysite
```
سيؤدي هذا إلى إنشاء دليل باسم `mysite` في الدليل `myproject`، والذي يحتوي على الملفات الهيكلية لمشروع Django.
2. انتقل إلى دليل `mysite`:
```bash
cd mysite
```
3. هيكل دليل مشروع Django هو كما يلي:
```
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
```
* `manage.py`: أداة سطر أوامر لإدارة مشروع Django.
* `mysite/`: حزمة Python تحتوي على تكوينات المشروع.
* `__init__.py`: ملف فارغ يخبر Python أنه يجب اعتبار هذا الدليل حزمة Python.
* `settings.py`: ملف تكوين المشروع، مثل إعدادات قاعدة البيانات ووضع التصحيح وما إلى ذلك.
* `urls.py`: تكوين توجيه URL، الذي يربط عناوين URL بوظائف العرض.
* `asgi.py`: ملف تكوين ASGI (واجهة بوابة الخادم غير المتزامنة)، يستخدم لنشر التطبيقات غير المتزامنة.
* `wsgi.py`: ملف تكوين WSGI (واجهة بوابة خادم الويب)، يستخدم لنشر التطبيقات المتزامنة التقليدية.## 3. بدء تشغيل خادم التطوير
يأتي Django مزودًا بخادم تطوير خفيف الوزن لتسهيل التطوير والاختبار محليًا.
1. في دليل `mysite`، قم بتشغيل الأمر التالي:
```bash
python manage.py runserver
```
2. افتح متصفحك وقم بزيارة `http://127.0.0.1:8000/`. يجب أن تكون قادرًا على رؤية صفحة "It worked! Congratulations on your first Django-powered page.".
## 4. إنشاء تطبيق Django
يمكن أن يحتوي مشروع Django على تطبيقات متعددة. لنقم بإنشاء تطبيق باسم `myapp`.
1. افتح نافذة طرفية جديدة (مع إبقاء خادم التطوير قيد التشغيل).
2. في دليل `mysite`، قم بتشغيل الأمر التالي:
```bash
python manage.py startapp myapp
```
سيؤدي هذا إلى إنشاء دليل باسم `myapp` في دليل `mysite`، والذي يحتوي على الملفات الهيكلية لتطبيق Django.
3. هيكل دليل تطبيق Django هو كما يلي:
```
myapp/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
```
* `__init__.py`: ملف فارغ يخبر Python أنه يجب اعتبار هذا الدليل حزمة Python.
* `admin.py`: يستخدم لتكوين لوحة إدارة Django.
* `apps.py`: تكوين التطبيق.
* `migrations/`: يستخدم لإدارة ترحيل قاعدة البيانات.
* `models.py`: تحديد نماذج البيانات (جداول قاعدة البيانات).
* `tests.py`: كتابة حالات الاختبار.
* `views.py`: تحديد وظائف العرض، ومعالجة الطلبات وإرجاع الاستجابات.
4. في `mysite/settings.py`، أضف `myapp` إلى قائمة `INSTALLED_APPS`:
```python
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp', # إضافة myapp
]
```
## 5. إنشاء عرض بسيط
الآن نقوم بإنشاء عرض بسيط لعرض "Hello, Django!" في المتصفح.
1. قم بتحرير الملف `myapp/views.py`، وأضف الكود التالي:
```python
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, Django!")
```
2. قم بإنشاء ملف `myapp/urls.py`، وقم بتعيين عنوان URL إلى وظيفة العرض:```python
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
```
3. تضمين `myapp/urls.py` في `mysite/urls.py`:
```python
from django.urls import include, path
from django.contrib import admin
urlpatterns = [
path('admin/', admin.site.urls),
path('myapp/', include('myapp.urls')), # إضافة تكوين URL الخاص بـ myapp
]
```
4. قم بزيارة `http://127.0.0.1:8000/myapp/`. يجب أن تكون قادرًا على رؤية صفحة "Hello, Django!".
## 6. إنشاء نموذج
لنقم بإنشاء نموذج بسيط لتخزين بعض البيانات.
1. قم بتحرير ملف `myapp/models.py`، وأضف الكود التالي:
```python
from django.db import models
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
def __str__(self):
return self.question_text
```
هذا يعرّف نموذجًا باسم `Question`، يحتوي على حقلين: `question_text` (CharField) و `pub_date` (DateTimeField).
2. إنشاء وتطبيق ترحيلات قاعدة البيانات:
```bash
python manage.py makemigrations myapp
python manage.py migrate
```
يقوم الأمر `makemigrations` بإنشاء ملفات الترحيل بناءً على النموذج الخاص بك، ويقوم الأمر `migrate` بتطبيق الترحيلات على قاعدة البيانات.
## 7. استخدام لوحة إدارة Django
يوفر Django لوحة إدارة قوية، والتي يمكن أن تدير بياناتك بسهولة.
1. إنشاء مستخدم فائق:
```bash
python manage.py createsuperuser
```
اتبع التعليمات لإدخال اسم المستخدم والبريد الإلكتروني وكلمة المرور.
2. قم بتحرير ملف `myapp/admin.py`، وقم بتسجيل نموذج `Question`:
```python
from django.contrib import admin
from .models import Question
admin.site.register(Question)
```
3. قم بزيارة `http://127.0.0.1:8000/admin/`، وقم بتسجيل الدخول باستخدام المستخدم الفائق الذي أنشأته. يجب أن تكون قادرًا على رؤية وحدة "Questions"، ويمكنك إضافة الأسئلة وتعديلها وحذفها.
## 8. استخدام القوالب
يمكن أن يؤدي استخدام القوالب إلى إنشاء صفحات HTML بمرونة أكبر.
1. في الدليل `myapp`، قم بإنشاء دليل باسم `templates`، وفي الدليل `templates`، قم بإنشاء دليل باسم `myapp` ( `myapp/templates/myapp` ).
2. في الدليل `myapp/templates/myapp`، قم بإنشاء ملف باسم `index.html`، وأضف الكود التالي:
```html
Hello, Django!
The current time is: {{ current_time }}
```
3. قم بتحرير الملف `myapp/views.py`، واستخدم القالب:
```python
from django.shortcuts import render
import datetime
def index(request):
now = datetime.datetime.now()
return render(request, 'myapp/index.html', {'current_time': now})
```
تقوم الدالة `render` بتحميل القالب وتمرير البيانات إلى القالب لتقديمه.
4. أعد زيارة `http://127.0.0.1:8000/myapp/`. يجب أن تكون قادرًا على رؤية صفحة تحتوي على الوقت الحالي.
## 9. استنتاج
من خلال هذا الدليل، تكون قد فهمت المفاهيم الأساسية لـ Django وكيفية استخدامها، بما في ذلك إعداد البيئة وإنشاء المشاريع والتطبيقات وتحديد النماذج وإنشاء طرق العرض واستخدام القوالب. هذه مجرد بداية، يوفر Django مجموعة كبيرة من الميزات، ويمكنك الاستمرار في التعلم والاستكشاف لبناء تطبيقات ويب أكثر تعقيدًا.