본문 바로가기
반응형

python16

[python-django] 모델에 작성하는 __str__에 대해서 예를 들어 다음과 같은 모델이 있다면 __str__ 메소드에 대해서 설명을 하고자 한다. class Notice(models.Model): class Meta: db_table = 'tb_notice' # ordering = ('-created_date',) title = models.CharField(max_length=254, null=True, blank=True) content = models.TextField(blank=True, null=True) files = models.FileField() written_date = models.DateTimeField(null=True, blank=True) writer = models.ForeignKey('user.User', on_delete=mod.. 2022. 12. 2.
[python-django]multi databases를 사용하는 방법 django에서 2개 이상의 데이터베이스를 연결하여 사용해야하는 경우가 생길 예정이라 학습중이다. 알아야 하는 키워드로는 inspectdb와 database router이다. 물론 다른 database를 사용하더라도 현재의 django의 앱에서 모델을 생성하고 DB만 그쪽을 연결 시킨다면 inspectdb를 알 필요는 없다. 하지만 다른 예를 들면 기본 db는 django에서 만들어서 사용을하고, 다른 db는 기존에 생성된 데이터를 쓰겠다. 하는 경우에는 알아야 한다. inspect db 기존에 생성된 테이블을 models.py로 가져올 수 있다. 그럼으로 인해 orm을 사용해서 데이터에 접근을 할 수 있게 된다. database router 어떤 모델을 사용할때 어떤 DB와 연결을 할지 중계를 해주는 .. 2022. 11. 24.
[python-django] logging 활성화 python을 하다보면 orm의 쿼리에 대해 궁금한 경우가 있을 수 있다. 그 경우 debung-toolbar를 사용해도 되고, settings.py에 아래 내용을 추가하면 콘솔창에서 쿼리가 확인 가능하다. #for log LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'format1': { 'format': '[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s', 'datefmt': '%d/%b/%Y %H:%M:%S' }, 'format2': { 'format': '%(levelname)s %(message)s' }, }, 'handlers': { 'co.. 2022. 11. 22.
[python-django] django의 transaction에 대해서 with atomic django에서 db에 데이터를 입력하게 될 경우 transaction에 대해서 고민을 하게 될 수 있다. 일반적인 django 디폴트는 auto commit이다. 그러면 commit 중 에러가 발생한 상황에 대해서 한땀한땀 코드를 짜서 처리를 할수도 있겠지만 atomic을 사용하면 간단히 해결된다. atomic을 사용하는 방법은 두가지로 1. 어노테이션(데코레이터)를 사용 from django.db import transaction @transaction.atomic def attendance(request): #모델에 데이터 저장 다음과 같이 transaction을 추가하고 @transaction.atomic을 넣어주면 데이터를 저장할때 예외가 발생하면 최종적으로 commit을 하지 않고 rollba.. 2022. 11. 17.
[python-django]스케쥴러(apschedular 사용) Django를 사용하면서 스케쥴러를 사용하기 위해서는 apschedular를 사용하면 간단하게 해결된다. apschedular = Advanced Python Schedular를 뜻한다. 그리고 이것은 리눅스의 corn, 윈도우의 scheduler처럼 동작하지만 데몬이나 서비스는 아니고 어플리케이션 안에서 동작을 한다고 보면 된다. 자세한 내용은 다음 github에서 확인 가능하다. GitHub - agronholm/apscheduler: Task scheduling library for Python Task scheduling library for Python. Contribute to agronholm/apscheduler development by creating an account on GitHu.. 2022. 11. 15.
[python-django]summernote 설치방법 - extra(Admin에 적용) summernote를 설치하고 큰 문제없이 개발을 진행하다가, django에서 지원해주는 Admin에서도 필요하다는게 갑자기 생각이 났다. 지금까지 똑같이 따라왔다면 Admin에 넣는것은 더 간단하게 끝이 난다. app의 admin.py의 코드에 다음 코드를 참고해서 변경하자 from .models import Notice from django_summernote.admin import SummernoteModelAdmin # Register your models here. #이전 코드 #admin.site.register(Notice)# #변경 코드 class NoticeAdmin(SummernoteModelAdmin): summernote_fields = ('content',) admin.site.r.. 2022. 11. 4.
728x90