320x100
# admin 계정 생성 (super user create)
#1
기본적으로 환경이 준비가 되어있다는 전제하에
(환경 준비가 안되어있고 뭐가 기본으로 준비되어야 할지도 모르겠다면
내가 작성한 ‘Django - 기본사이클 - 모델과 웹사이트1과 2’를 보고 준비하면 될것같다)
vscode터미널에 python manage.py createsuperuser
라고 입력한다.
그리고나서는
username
을 각각 입력하고
비밀번호는 너무 단순하지 않게 8자리 이상으로 작성한다. (예를들어 password 등 ok, 0000은 안됨)
# 그 외적으로는 만졌던 코드셋에 대해서 올려본다.
# 첫번째 파일
my_car_site > cars > views.py
from django.shortcuts import render, redirect
from django.urls import reverse
from . import models
# Create your views here.
def list(request):
all_cars = models.Car.objects.all()
context = {'all_cars':all_cars}
return render(request, 'cars/list.html', context = context)
# 이 코드의 전체적 의미는 사용자가 POST방식, 즉 데이터를 직접 입력하는 것이면 if문을 따르고,
# 그 외의 경우는 그냥 add.html을 렌더링 한다는 의미다.
def add(request):
# 이것은 사실상 POST방식, 즉, 사용자가 (여기서는 add함수 내부니깐) add 페이지에서
# 데이터를 입력하면 해당 데이터를 print는 확인할 수 있는 것이고, 이 코드를 수정해주면 저장하여 누적도 가능하다.
if request.POST:
brand = request.POST['brand']
year = int(request.POST['year'])
models.Car.objects.create(brand=brand, year=year)
# if user submitted new car ==> list.html
return redirect(reverse('cars:list'))
else:
return render(request, 'cars/add.html')
def delete(request):
if request.POST:
# delete the car
pk = request.POST['pk']
try:
models.Car.objects.get(pk=pk).delete()
# 삭제 후에 어플리케이션 cars의 list로 리디렉션 한다는 뜻
return redirect(reverse('cars:list'))
except:
print('pk not found')
return redirect(reverse('cars:list'))
else:
return render(request, 'cars/delete.html')
# 두번째 파일
my_car_site > cars > models.py
from django.db import models
# Create your models here.
class Car(models.Model):
# primary key가 auto increment방식으로 늘어간다.
brand = models.CharField(max_length=30)
year = models.IntegerField()
def __str__(self):
return f'Car is {self.brand} {self.year}'
# 세번째 파일
my_car_site > cars > admin.py
from django.contrib import admin
from cars.models import Car
# from .models import Car 도 사용은 가능한걸로 알고있다.
# Register your models here.
class CarAdmin(admin.ModelAdmin):
# 필드의 순서가 brand, year이였는데, 그것을 재 조작하여주는 클래스다.
# fields = ['year', 'brand']
fieldsets = [
('TIME INFORMATION', {'fields':['year']}),
('CAR INFORMATION', {'fields':['brand']})
]
# register안의 인자는 Car를 import해온것부터
# 그 다음이 바로 위에 클래스 정의해준 것이다.
admin.site.register(Car, CarAdmin)
300x250
'개발일지 > Django' 카테고리의 다른 글
Django - form 탬플릿 랜더링 (0) | 2022.10.01 |
---|---|
Django - form class 기초 (다음 포스팅과 연결될 예정) (1) | 2022.10.01 |
Django - 기본사이클 - 모델과 웹사이트2 (1) | 2022.09.30 |
Django - 기본사이클 - 모델과 웹사이트1 (1) | 2022.09.30 |
Django - 데이터베이스 모델 연결하기 (1) | 2022.09.30 |