일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 최소스패닝트리
- 장고
- 함밥
- 파이썬
- 실습
- 모각코
- 마라마라빔
- 백트래킹
- programmers
- DP
- MyPlaylist
- 그리디알고리즘
- 프로그래머스
- BFS
- django
- 백준
- Kruskal
- B대면노래방
- Planned
- 종합설계
- DFS
- Bellman-Ford
- codetree
- SQL
- 알고리즘
- 코드트리
- 동적계획법
- 소프트웨어공학
- minimum spanning tree
- 데이터베이스
- Today
- Total
목록django (27)
Leta Learns
첫 날에 백 작업을 거의 완료해두고 둘째 날에는 CSS 작업 위주로 진행했다. 1일 차 포스트에서 얘기했던 것처럼 CSS 할 여유 시간과 체력이 있어서 더 즐겁게 진행할 수 있었다. 1. NavBar, Footer 만들기 어쩌다보니 이 부분은 내가 도맡아서 했다. NavBar는 멋사 노션에 제공된 것을 사용하였다. download login logout 등 필요 없는 부분은 제외하고 로고와 서치 기능만 넣어주었다. Footer는 빌보드 홈페이지에 있는 검정 배경의 footer가 너무 맘에 들어서 그것과 비슷하게 했다. 플렉스를 넣고 Sharing, GitHub, Link 세 구역으로 나눈 다음 그 밑에 해당하는 링크들을 넣는 과정에서 어려움이 있었다. home.html에서는 링크들이 세로줄로 제대로 배열..
미니 해커톤 후 팀원 한 명과 토이 프로젝트를 하기로 했다. 개강 전에 미니 해커톤을 한 번 더 진행할 계획이 있다고 들어서 그 전에 조금이라도 더 실력을 키워놓고 싶었다. 주제 : billboard HOT 100 🔥 미니 해커톤때는 사실 CSS에 손도 안 댔어서 이번에는 CSS 열심히 하는 게 제1 목표였다. 두 번째 목표는 git 좀 더 능숙하게 사용해보기. 1. API 통신 장고 기본 세팅을 마치고 API 받아오는 작업을 했다. 미니 해커톤 때는 API 받아오는 작업을 팀원이 해서 이번 프로젝트에서는 이 작업을 내가 해보기로 했다. (팀원의 도움 하에.. ㅋㅋ) 우선, 모델을 먼저 정의해주었다. models.py from django.db import models # Create your model..
오늘은 댓글 기능 구현을 했다. 사실 어제도 했는데 실패해서.. 어제는 딱히 적을 게 없었다. ㅎㅎ 1. 댓글에 사용할 모델 생성 댓글 기능을 사용하기 위해 댓글에 사용할 Comment 모델을 작성하였다. blog/models.py class Comment(models.Model): blog = models.ForeignKey(Blog, null = True, on_delete=models.CASCADE, related_name="comments") comment_user = models.ForeignKey(CustomUser, null=True, on_delete=models.CASCADE) comment_body = models.CharField(max_length=200) comment_date =..
댓글 기능 구현하려고 시도하다가 별 성과가 없어서 실습 결과를 올릴까 말까 고민하다가 로그인한 사람만 글을 쓸 수 있게 하는 기능을 넣어준 게 기억나서 이것만 짧게 올린다. 1. 글 작성 접근 제한 (로그인한 사람만 글을 쓸 수 있게) 어려운 건 아니고 글 작성하는 New Post를 user.is_authenticated 조건 안에 넣어주면 된다. blog/templates/home.html {% if user.is_authenticated %} New Post {% endif %} #로그아웃 상태 -> New Post 작성 불가 #로그인 상태 -> New Post 작성 가능 음.... 확실히 그냥 다음 포스팅에 합치는 게 나았을 것 같기도...... ㅋㅋㅋㅋㅋ 댓글 구현 기능만 수월하게 했다면 결과물이..
4. User 모델 확장 장고의 기본 User 모델은 실제 서비스에서 사용하기에는 매우 한정적이다. 따라서 필요한 부분을 User 모델에 추가해 줄 것이다. 장고의 User 모델을 확장하기 위해 AbstractUser 클래스를 상속하였다. account/models.py from django.db import models from django.contrib.auth.models import AbstractUser # Create your models here. class CustomUser(AbstractUser): nickname = models.CharField(max_length=100) university = models.CharField(max_length=50) location = models..
1. 새로운 account 프로젝트 세팅 account 앱 생성 (기존의 blog앱과 분리하기 위해) python manage.py startapp account 앱을 추가했으니 settings.py에 새 앱을 알려주어야 한다. INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog', 'account', ] account/urls.py 정의 from django.urls import path from . import views ..
장고 진도를 다 나가고 두 번째 과제가 주어졌다. 첫 번째 과제인 CRUD 과제 할 때는 티스토리를 안 하고 있었어서 그때 공부한 것들을.. 기록해 놓지 않았다.... 이번 과제부터... 열심히 기록해야지.... 이번 과제는 지난 번 과제로 만든 My Playlist 사이트에 Static, Media, Form , User Authentication 등을 이용해 로그인 한 사람만 글을 쓸 수 있는 기능 (접근 제한) 댓글 기능 추가 (로그인/로그아웃 무관) 블로그 전체적인 디자인하기 (CSS) 이 세 가지를 구현하면 된다. 1. Static, Media, NavBar 수정 지난 과제 때 home은 좀 꾸몄었다. 하이퍼링크 색도 바꾸고 이것저것.. 근데 이번 과제 하는 중에 그런 것들을 좀 날렸다. 뼈대 ..
게시물에 작성자 연결. 작성자(user)는 여러 게시물(Blog)을 작성 가능. 게시물은 1명의 작성자에게만 연결될 수 있음. 1(작성자) : N(게시물) 관계 blog/models.py (-> 작성자-게시물 연결) from django.db import models from account.models import CustomUser # Create your models here. class Blog(models.Model): user = models.ForeignKey(CustomUser, null=True, on_delete=models.CASCADE) title = models.CharField(max_length=200) writer = models.CharField(max_length=10) p..
Paginaton : 데이터를 페이지 별로 나눠서 보내주는 것. Paginator라는 모듈을 통해 pagination기능 제공 Paginator 사용 이유 UI/UX적인 편리함을 제공하기 위해 서버 부하 줄이기 위해 blog/views.py (-> Paginator) # 이전 import문들.. from django.core.paginator import Paginator def home(request): blogs = Blog.objects.all() #blog 객체를 모두 가져옴 paginator = Paginator(blogs, 3) # blogs를 3개씩 나눔 page = request.GET.get('page') # 해당 정보가 오지 않아도 넘어간다 paginated_blogs = paginat..
쿼리 스트링 : 데이터를 전달하는 데 사용. URL 주소 뒤에 입력 데이터를 함께 제공. request.GET['page'] request.GET.get('page') 두 개의 형태로 해당하는 데이터를 얻을 수 있다. '?'로 시작. '&'를 통해 여러 데이터를 동시에 전달 가능. 이 분 velog보면 좀 더 잘 이해 가능! https://velog.io/@keywookim/We.TIL-30-Django-%EC%BF%BC%EB%A6%AC%EC%8A%A4%ED%8A%B8%EB%A7%81-%EA%B0%84%EB%8B%A8-%EC%82%AC%EC%9A%A9%EB%B2%95 We.TIL 30 : Django 쿼리스트링 간단 사용법 쿼리스트링이란? 쿼리스트링이란 사용자가 웹 프로그램으로 입력한 데이터를 전달하는 ..