# Django Ievada Rokasgrāmata: Ātri Izveidojiet Savu Pirmo Tīmekļa Lietotni
Django ir augsta līmeņa Python tīmekļa ietvars, kura mērķis ir ātra izstrāde un vienkāršs dizains. Tas seko modeļa-veidnes-skata (MTV) arhitektūrai, veicinot koda atkārtotu izmantošanu un komponentizāciju. Šī rokasgrāmata soli pa solim palīdzēs jums izveidot vienkāršu Django lietotni, lai jūs varētu ātri sākt darbu.
## 1. Vides Iestatīšana
Pirmkārt, jums jāpārliecinās, vai jūsu sistēmā ir instalēts Python. Django iesaka izmantot Python 3.6 vai jaunāku versiju.
### 1.1 Python Instalēšana
Ja jūsu sistēmā nav instalēts Python, varat to lejupielādēt un instalēt no [Python oficiālās vietnes](https://www.python.org/downloads/).
### 1.2 Virtuālās Vides Izveide (Virtual Environment)
Lai izolētu atkarības starp dažādiem projektiem, ļoti ieteicams izmantot virtuālo vidi.
1. Atveriet termināli vai komandrindu.
2. Izveidojiet projekta direktoriju, piemēram, `myproject`:
```bash
mkdir myproject
cd myproject
```
3. Izveidojiet un aktivizējiet virtuālo vidi:
```bash
python3 -m venv venv # Vai python -m venv venv
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows
```
Pēc virtuālās vides aktivizēšanas jūsu termināļa uzvedne parādīs `(venv)`, norādot, ka izmantojat virtuālo vidi.
### 1.3 Django Instalēšana
Aktivizētajā virtuālajā vidē izmantojiet pip, lai instalētu Django:
```bash
pip install Django
```
Pārbaudiet, vai instalēšana ir veiksmīga:
```bash
python -m django --version
```
Jums vajadzētu redzēt Django versijas numuru.
## 2. Django Projekta Izveide
Pēc Django instalēšanas varat izveidot jaunu Django projektu.
1. Joprojām atrodoties savā projekta direktorijā (`myproject`), palaidiet šo komandu:
```bash
django-admin startproject mysite
```
Tas izveidos direktoriju ar nosaukumu `mysite` direktorijā `myproject`, kas satur Django projekta karkasa failus.
2. Ieejiet `mysite` direktorijā:
```bash
cd mysite
```
3. Django projekta direktoriju struktūra ir šāda:
```
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
```
* `manage.py`: Komandrindas rīks Django projekta pārvaldībai.
* `mysite/`: Python pakotne, kas satur projekta konfigurāciju.
* `__init__.py`: Tukšs fails, kas norāda Python, ka direktorijs jāuzskata par Python pakotni.
* `settings.py`: Projekta konfigurācijas fails, piemēram, datubāzes iestatījumi, atkļūdošanas režīms utt.
* `urls.py`: URL maršrutēšanas konfigurācija, kas kartē URL uz skata funkcijām.
* `asgi.py`: ASGI (Asynchronous Server Gateway Interface) konfigurācijas fails asinhronu lietotņu izvietošanai.
* `wsgi.py`: WSGI (Web Server Gateway Interface) konfigurācijas fails tradicionālu sinhronu lietotņu izvietošanai.
## 3. Izstrādes servera palaišana
Django nāk komplektā ar vieglu izstrādes serveri, kas atvieglo izstrādi un testēšanu lokāli.
1. Direktorijā `mysite` izpildiet šādu komandu:
```bash
python manage.py runserver
```
2. Atveriet savu pārlūkprogrammu un apmeklējiet `http://127.0.0.1:8000/`. Jums vajadzētu redzēt lapu ar tekstu "It worked! Congratulations on your first Django-powered page.".
## 4. Django lietotnes izveide
Viens Django projekts var ietvert vairākas lietotnes. Izveidosim lietotni ar nosaukumu `myapp`.
1. Atveriet jaunu termināļa logu (atstājiet izstrādes serveri darbojamies).
2. Direktorijā `mysite` izpildiet šādu komandu:
```bash
python manage.py startapp myapp
```
Tas direktorijā `mysite` izveidos direktoriju ar nosaukumu `myapp`, kas satur Django lietotnes karkasa failus.
3. Django lietotnes direktoriju struktūra ir šāda:
```
myapp/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
```
* `__init__.py`: Tukšs fails, kas pasaka Python, ka direktorija jāuzskata par Python pakotni.
* `admin.py`: Izmanto Django administrācijas paneļa konfigurēšanai.
* `apps.py`: Lietotnes konfigurācija.
* `migrations/`: Izmanto datubāzes migrāciju pārvaldībai.
* `models.py`: Definē datu modeļus (datubāzes tabulas).
* `tests.py`: Raksta testa gadījumus.
* `views.py`: Definē skata funkcijas, kas apstrādā pieprasījumus un atgriež atbildes.
4. Failā `mysite/settings.py` pievienojiet `myapp` sarakstam `INSTALLED_APPS`:
```python
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp', # Pievienojiet myapp
]
```
## 5. Vienkārša skata izveide
Tagad izveidosim vienkāršu skatu, lai pārlūkprogrammā parādītu "Hello, Django!".
1. Rediģējiet failu `myapp/views.py`, pievienojot šādu kodu:
```python
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, Django!")
```
2. Izveidojiet failu `myapp/urls.py` un kartējiet URL uz skata funkciju:
```python
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
```
3. Iekļaujiet `myapp/urls.py` failā `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')), # Pievieno myapp URL konfigurāciju
]
```
4. Apmeklējiet `http://127.0.0.1:8000/myapp/`. Jums vajadzētu redzēt lapu ar tekstu "Hello, Django!".
## 6. Izveidojiet modeli
Izveidosim vienkāršu modeli, lai saglabātu datus.
1. Rediģējiet failu `myapp/models.py`, pievienojiet šādu kodu:
```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
```
Šis definē modeli ar nosaukumu `Question`, kas satur divus laukus: `question_text` (CharField) un `pub_date` (DateTimeField).
2. Izveidojiet un lietojiet datubāzes migrācijas:
```bash
python manage.py makemigrations myapp
python manage.py migrate
```
`makemigrations` komanda izveidos migrācijas failu, pamatojoties uz jūsu modeli, un `migrate` komanda lietos migrāciju datubāzei.
## 7. Izmantojiet Django administrācijas paneli
Django nodrošina jaudīgu administrācijas paneli, lai ērti pārvaldītu jūsu datus.
1. Izveidojiet superlietotāju:
```bash
python manage.py createsuperuser
```
Ievadiet lietotājvārdu, e-pastu un paroli, kad tiek prasīts.
2. Rediģējiet failu `myapp/admin.py`, reģistrējiet `Question` modeli:
```python
from django.contrib import admin
from .models import Question
admin.site.register(Question)
```
3. Apmeklējiet `http://127.0.0.1:8000/admin/`, piesakieties ar savu izveidoto superlietotāju. Jums vajadzētu redzēt "Questions" moduli, kur varat pievienot, rediģēt un dzēst jautājumus.
## 8. Izmantojiet veidnes
Veidņu izmantošana var elastīgāk ģenerēt HTML lapas.
1. Izveidojiet direktoriju ar nosaukumu `templates` direktorijā `myapp` un izveidojiet direktoriju ar nosaukumu `myapp` direktorijā `templates` ( `myapp/templates/myapp` ).
2. Izveidojiet failu ar nosaukumu `index.html` direktorijā `myapp/templates/myapp` un pievienojiet šādu kodu:
```html
Hello, Django!
The current time is: {{ current_time }}
```
3. Rediģējiet failu `myapp/views.py`, lai izmantotu veidni:
```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` funkcija ielādēs veidni un nodos datus veidnei renderēšanai. // `render` funkcija ielādēs veidni un nodos datus veidnei renderēšanai.
4. Atkārtoti apmeklējiet `http://127.0.0.1:8000/myapp/`. Jums vajadzētu redzēt lapu, kurā ir redzams pašreizējais laiks. // Jums vajadzētu redzēt lapu, kurā ir redzams pašreizējais laiks.
## 9. Secinājums
Ar šīs rokasgrāmatas palīdzību jūs esat apguvis Django pamatjēdzienus un lietošanas metodes, tostarp vides iestatīšanu, projektu un lietotņu izveidi, modeļu definēšanu, skatu izveidi un veidņu izmantošanu. Tas ir tikai sākums, Django piedāvā bagātīgas funkcijas, jūs varat turpināt mācīties un izpētīt, lai izveidotu sarežģītākas tīmekļa lietotnes. // Tas ir tikai sākums, Django piedāvā bagātīgas funkcijas, jūs varat turpināt mācīties un izpētīt, lai izveidotu sarežģītākas tīmekļa lietotnes.