Backend

html 모듈의 escape와 unescape와 동일한 기능으로, 사용법은 아래와 같다 autoescape {% autoescape off %} 내용 {% endautoescape %}
- db.sqlite3 삭제 - migrations 내 파일 삭제 - makemigration - migate
터미널에 pip freeze > requirements.txt 입력 시 requirements.txt 라는 텍스트 파일이 생성된다. 아래와 같이 개발환경의 버전들을 텍스트 파일로 확인할 수 있다. 협업 시 버전을 일치 시키는데에 유용할 것 같다.
django rest_framework에서 serializers.py의 create 함수 작성 후 테스트 중 에러가 발생했다. 에러가 발생한 코드와 에러는 아래와 같다. image_set = self.context['request'].FILES image_set = self.context['request'].FILES KeyError: 'request' 에러 해결을 위해 구글링 한 결과 아래와 같은 힌트를 얻을 수 있었다. while instantiating your serializer do like this ser = Serializer(context={"request": request}) 이유는 views.py에서 serializer를 선언할 때 request를 담아 context를 정의하지 않았기 ..
django 커피 모델링 연습 중 원하는 카테고리를 선택하면 조건에 맞는 커피들을 모두 표시하고 싶었다. 하지만 2개 이상의 즉 n개의 카테고리를 선택할 경우를 생각해야했다. 결론은 filter를 통해 얻은 데이터들을 결합시켜야했는데, union이 떠올라 정보를 찾아 해결하여 기록한다. category = request.POST.getlist('category[]', '') category라는 리스트에 1개 또는 2개 이상의 카테고리가 들어올 수 있도록 getlist를 사용해 POST 데이터를 받는다. if len(category) == 0: all_category = Category.objects.all() return render(request, 'home.html', {'error': '카테고리를 ..
input type checkbox 여러개 선택 시 django에서 처리하는 방법을 기록한다 {{ ct.name }} name="category[]" : name 속성의 값을 리스트 형태로 지정함으로써 django에서 리스트로 사용할 수 있게 된다. views.py category = request.POST.getlist('category[]', '') django.shortcuts request의 getlist를 사용해서 html form에서 전송한 데이터를 리스트 형태로 받을 수 있다. 이로써 전송 받은 list를 기분좋게 주무르며 사용할 수 있게 되었다.
django에서 static 폴더의 css를 적용이 되지 않는 문제를 해결하고 기록한다. settings.py STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static'), ) base.html index.html {% extends 'base.html' %} {% load static %} {% block style %} {% endblock %}
1. AWS에서 EC2 - 인스턴스 시작 2. Amazon Machine Image - Ubuntu Server 20.04 검색 3. 프리 티어인 ubuntu 선택 4. 보안 그룹 - 보안 그룹 편집 5. 키 페어 - 새 키 페어 생성 - 키페어 다운로드 후 파일 경로 기억 6. 인스턴스 생성 후 인스턴스 목록에서 인스턴스 ID 클릭 - 우측 상단 연결 클릭 - 연결 클릭 터미널 출력 7. $ sudo apt-get update # EC2서버에 git과 python 설치 $ git clone https://github.com/sungwookoo/django-sns-practice.git # 저장소 클론 $ ls # 디렉토리 내 폴더 정상적으로 들어왔는지 확인 $ cd django-sns-practice/..
taggit 모듈 사전 준비 1. Django 태그 모듈 설치 $ pip install django-taggit $ pip install django-taggit-templatetags2 2. project/settings.py 에서 install한 모듈 등록 및 설정 추가 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'tweet', 'user', 'restaurant', 'taggit.apps.TaggitAppconfig', '..
회원가입 실패 1. user/views.py의 sign_up_view 메서드 수정 def sign_up_view(request): if request.method == 'GET': user = request.user.is_authenticated # is_authenticated : 로그인 되어 있는지 검사 if user: return redirect('/') # 로그인 한 사용자라면 home.html 이동 else: return render(request, 'user/signup.html') # 로그인 하지 않은 사용자라면 회원가입 페이지로 이동 elif request.method == 'POST': # POST 받은 username 저장 없다면 None username = request.POST.ge..
1. user/models.py의 UserModel class 안에 follow 선언 # 우리의 모델을 우리가 ManyToMany Field로 참조하겠다. follow = models.ManyToManyField(settings.AUTH_USER_MODEL, related_name='followee') 2. $ python manage.py makemigrations $ python manage.py migrate - DB에 my_user_follow 테이블이 생성됨 3. user/views.py에서 user_view, user_follow 메서드 작성 @login_required def user_view(request): if request.method == 'GET': # 사용자 불러오기, exclu..
이전글 : [파이썬] Django - 기초 실습 3) Tweet (게시글) 게시글/댓글 조회 1. tweet/views.py에서 detail_tweet 함수 작성 @login_required def detail_tweet(request, id): if request.method == 'GET': user = request.user.is_authenticated # is_authenticated : 로그인 되어 있는지 검사 if user: target_tweet = TweetModel.objects.get(id=id) comment = TweetComment.objects.filter(tweet_id=id) return render(request, 'tweet/tweet_detail.html', {'twe..
이전글 : [파이썬] Django - 기초 실습 2) Tweet (홈 화면) 게시글 쓰기 1. templates/tweet/home.html에서 게시글 form 설정 ... 나의 이야기를 적어주세요 {% csrf_token %} 작성하기 ... 2. tweet/views.py의 tweet 함수에 POST 방식 작성 def tweet(request): if request.method == 'GET': user = request.user.is_authenticated # is_authenticated : 로그인 되어 있는지 검사 if user: return render(request, 'tweet/home.html') # 로그인 한 사용자라면 home.html 이동 else: return redirect('..
이전글 : [파이썬] Django - 기초 실습 1) User 로그인 이후 Tweet 화면 이동 1. tweet/urls.py에서 url에 따라 실행하는 함수 설정 # tweet/urls.py from django.urls import path from . import views urlpatterns = [ path('', views.home, name='home'), # 127.0.0.1:8000 과 views.py 폴더의 home 함수 연결 path('tweet/', views.tweet, name='tweet') # 127.0.0.1:8000/tweet 과 views.py 폴더의 tweet 함수 연결 ] 2. tweet/views.py에서 로그인 상태 검사 후 페이지 이동하는 home 메서드 작성 ..
처음 접하는 Django에 대해 실습을 진행하며, 그 순서를 기록하기 위해 작성한 글이다. 1. $ django-admin startapp user - 'user' 라는 새로운 앱을 만든다 - settings.py에서 INSTALLED_APPS 에 'user'을 추가 2. UserModel을 작성한다 # user/models.py from django.db import models # Create your models here. class UserModel(models.Model): # Meta Class : DB 테이블의 이름을 지정 class Meta: db_table = "my_user" username = models.CharField(max_length=20, null=False) passwor..
Sungwoo Koo
'Backend' 카테고리의 글 목록 (2 Page)