2022. 9. 28. 09:49ㆍ스파르타코딩클럽[AI트랙 3기]/타임어택(쪽지시험 등)


▶내가 쓴 답안
손을 못댔다... 시작을 어떻게해야할지 모르겠음. 이해한 구조로 보면 흐름따라 차근차근하면 될 것 같고 어렵지 않다고 했는데 왜 그렇게 말했는지는 알 것 같다.
▶풀이
0.문제에 대한 설명
로그를 남기는 것 : 자주 쓰이고 중요. 다양한 방식으로 사용. 로그는 장고에서 사용자 보는 것들이라고 볼 수 있음. 로그인 기록등은 마케팅자료, 사용자가 컴플레인 걸었을때 어떤 문제가 있는지 등 히스토리를 관리할 수 있음.
1.model.py에 AccessLog 테이블 생성
1)*장고 설치(가상환경 세팅)
터미널에서 python -m venv venv >> venv\scripts\activate >>pip install django
잘돌아가는지 확인 : python manage.py runserver
2)models.py에 작업(필드를 2개 만들어줌)
class AccessLog(models.Model):
"""
1.default : 기본적으로 사용될 날짜를 사용자가 지정
2.auto_now : 데이터가 수정 될 때마다 갱신됨 > created_at =DateTimeField("생성시간", auto_now_add=True) +auto_now를 같이 쓰면 에러남.
3.auto_now_add : 데이터가 생성될 때 시간을 기록 updated_at =DateTimeField("접속시간", auto_now=True)
"""
created_at = models.DateTimeField("접속 시간", auto_now_add=True)
location = models.CharField("접속 경로", max_length=50) #언제 어디로 접근했는지 확인하기 위함
#user = 사용하면 로그인 연동하면 누가 접속했는지 까지 알 수 있음
#모으고 수집하고 싶은 데이터를 자유롭게 작성 가능
2.생성된 테이블을 makemigrations/migtate 명령어를 통해 db에 반영
1)터미널에 입력
python manage.py makemigrations > create model Accesslog #그냥 파일을 생성하는 것, db에 테이블이 생기는 것이 아님.
python manage.py migrate > 데이터베이스에 마이그레이션 적용
+)sql lite viewr 익스텐션 사용
3.생성한 테이블을 admin.py에 등록
1)admin.py 에 적기
form introduce.models import AccessLog #introduce의 model에 있는 AccessLog
admin.site.register(AccessLog) #괄호안에는 모델이 들어가야함.
4. 사용자가 introduce 페이지에 접속했을 때, 접속 로그를 남겨주기
1)view.py
from introduce.models import AccessLog
def introduce(request):
#case1 row 생성(access_log데이터) > access_log라는 변수에 AccessLog라는 클래스로 받아주고, 저장하기
access_log = AccessLog()
access_log.location = "introduce" #접속경로는 introduce이다.
aceess_log.save() #save가 있어야 저장됨.
#case2 >바로받아주기
AccessLog.objects.create(
location="introduce"
)
return render(request, 'introduce.html')
5.admin 페이지 접속해서 접속 기록 확인
+)admin 계정 만들기 :python manage.py createsuperuser
admin 계정으로 들어가면 몇번 페이지가 조회됐는지 확인가능
보기좋게 바꾸는 방법
def __str__(self):
return f"{created_at}/ {self.location}" #언제, 어디에 접속했는지 확인 가능
#f안에 "내가 쓰고 싶은 택스트"를 넣어서 보이게 할 수 있다.
*장고에서 field는 readonly 속성을 가짐.
'스파르타코딩클럽[AI트랙 3기] > 타임어택(쪽지시험 등)' 카테고리의 다른 글
| [쪽지시험] 221025 장고 rfw #1 (0) | 2022.10.25 |
|---|---|
| [장고]타임어택 221014 (0) | 2022.10.17 |
| [쪽지시험] 220928 #3 (0) | 2022.09.28 |
| [타임어택] 220923 #1 (1) | 2022.09.26 |
| [쪽지시험] 220926 #1 (0) | 2022.09.26 |