# Neues Django-Projekt anlegen
**1. Neuen Ordner erstellen**
Erstelle einen neuen Ordner mit dem gewünschten Projektnamen, z. B.:
```sh
mkdir ProjektName
cd ProjektName
```
**2. Virtuelle Umgebung einrichten**
Erstelle eine virtuelle Umgebung und aktiviere sie:
```sh
python -m venv .venv # ".venv" kann auch "venv" oder "env" heißen
.venv/Scripts/activate # Windows
source .venv/bin/activate # macOS/Linux
```
> *Hinweis:* Bei mac muss man ggf. python3 schreiben anstatt nur python.
**3. Django installieren**
Installiere Django:
```sh
python -m pip install Django
pip freeze # Überprüfen, ob alles installiert wurde
pip freeze > requirements.txt # Abhängigkeiten speichern
```
**4. Django-Projekt erstellen**
Erstelle das Django-Projekt mit dem Namen "core":
```sh
django-admin startproject core .
```
**5. `.gitignore` hinzufügen und Projekt pushen**
- `.gitignore` aus anderen Projekten übernehmen (z. B. von [GitHub](https://github.com/github/gitignore/blob/main/Python.gitignore) oder [gitignore.io](https://www.toptal.com/developers/gitignore)).
- Erst nach dem Hinzufügen zur `.gitignore` das Projekt auf Git pushen!
**6. Django-App erstellen**
Lege eine neue App an (z. B. `market_app`):
```sh
python manage.py startapp market_app
```
> **Tipp:** Überlege vorab, wie viele Apps benötigt werden. Es können später weitere hinzugefügt werden.
**7. Apps in `settings.py` registrieren**
- Öffne `settings.py` im `core`-Ordner und ergänze `INSTALLED_APPS`:
```python
INSTALLED_APPS = [
...
'market_app',
]
```
- Falls mit externem Frontend gearbeitet wird, corsheaders installieren mit `python -m pip install django-cors-headers` und in den installed_apps `corsheaders` hinzufügen und bei `MIDDLEWARE` `corsheaders.middleware.CorsMiddleware` hinzufügen.
- CORS_ALLOWED_ORIGINS = [] hinzufügen mit den jeweiligen path z.b. `http://127.0.0.1:5500` oder `http://localhost:5500`
- Solltest du in CSRF Probleme kommen kommentiere folgende Zeile in der `MIDDLEWARE` aus um den Schutz zu deaktivieren: `django.middleware.csrf.CsrfViewMiddleware`
> HINWEIS: Oder setze Token-Cookies im Production Modus incl. CSRF_TRUSTED_ORIGINS (wird später durch DRF obsolet)
**8. Modelle erstellen und migrieren**
- Öffne `models.py` in `market_app` und definiere eigene Modelle, z. B.:
```python
from django.db import models
class Contact(models.Model):
name = models.CharField(max_length=255)
email = models.EmailField()
```
- Danach die Migrationen durchführen:
```sh
python manage.py makemigrations
python manage.py migrate
```
**9. Projektverlauf dokumentieren**
- Änderungen regelmäßig committen und pushen.
>Hinweis: Denke daran, deine requirements.txt vor einer Abgabe nochmal mit dem Stand des Projekt zu "füllen".
```sh
pip freeze > requirements.txt # Abhängigkeiten speichern
```