본문 바로가기
반응형

○ WEB/21.02 CodeLion_Django Web40

[장고 실전4] 리뷰웹 3. API 가져오기 API 이용방법은 API 다큐먼트를 보고 따라하는 것을 익히면 된다. 1. 사이트로 이동 영화 - Search API 영화 NAVER Developers - 검색 API 영화 검색 개발가이드 검색 > 영화 네이버 영화 검색 결과를 출력해주는 REST API입니다. 비로그인 오픈 API이므로 GET으로 호출할 때 HTTP Header에 애플리케이션 등록 시 developers.naver.com 2. API 신청하기 API를 신청하면 하단처럼 아이디와 비밀번호를 준다. 4. 다시 검색창으로 이동해서 다큐먼트를 보자 위 2가지 포맷 중 더 자주 쓰이는 JSON으로 GET요청을 보내자. 5. 요청변수 살펴보기 기생충을 검색하고 싶다면 다음처럼 JSON포맷에 GET요청을 보낸다. 드라마 장르를 검색하고 싶다면 위.. 2021. 4. 21.
[장고 실전4] 소셜로그인 소셜 로그인 구현 pip install django-allauth 설치 django-allauth로 가보자 django-allauth.readthedocs.io/en/latest/installation.html Installation — django-allauth 0.43.0 documentation Post-Installation In your Django root execute the command below to create your database tables: Now start your server, visit your admin pages (e.g. http://localhost:8000/admin/) and follow these steps: Add a Site for your domain,.. 2021. 4. 12.
[장고 실전4] 리뷰웹 2. MariaDB 연동하기 (SecretKey 외부파일 만들기) 먼저 이전 커뮤니티 프로젝트(1~8단계)를 그대로 가져와서 활용한다. 1. 가상환경 설치 2. 가상환경 실행 3. 장고 설치 4. 실행 에러 발생 : Auto-created primary key used when not defiing a primary key type, by default 'django.db.models. AutoField'. 해결 방법 : 0ver-grow.tistory.com/978 5. mariaDB를 활용하기 위해 터미널 창에 하단 명령어 입력 $ pip install mysqlclient settings.py 그런데 여기서 깃허브 업로드시 user, Password는 노출되면 안되기에 my_settings.py파일에 작성한 뒤, 외부에서 import해야한다. 특히나 서비스할 웹이.. 2021. 4. 9.
[에러 해결] Auto-created primary key used when not defiing a primary key type, by default 'django.db.models.AutoField'. 에러명 Auto-created primary key used when not defining a primary key type, by default 'django.db.models.AutoField'. 해결방법 settings.py파일에 추가 DEFAULT_AUTO_FIELD='django.db.models.AutoField' 참고 Auto-create primary key used when not defining a primary key type warning in Django I just updated my python from 3.9.1 to 3.9.4. When I tried to run the server. The console gave me a warning for this: WARNINGS:.. 2021. 4. 9.
[장고 실전4] 리뷰웹 1. MariaDB 연동하기 mariadb.org/download/ Download MariaDB Server - MariaDB.org REST API MariaDB Repositories Release Schedule Reporting Bugs … Continue reading "Download MariaDB Server" mariadb.org 다운로드한 버전은 : MariaDB Server 10.5.9 설치확인하기 윈도우 > MySQL Client MariaDB와 함께 설치된 HeidiSQL DBClient 프로그램 어떤 DB가 있고 어떤 테이블이 있는지 확인할 수 있다. 신규 DB를 만들어보자 2021. 4. 9.
[장고 실전3] 8. 커뮤니티 : 게시글 페이지만들기 다음처럼 입력하면 1페이지로 가도록 만들자 url?page=1은 딕셔너리 형태{page:1}로 되어있다.메인앱 > views.pyfrom django.core.paginator import Paginator # 게시글목록 페이지. 객체 목록을 끊어서 보여줌 def home(request) : # 글목록 출력 # posts는 쿼리셋 객체 목록 # posts = Post.objects.filter().order_by('date') # models.py의 date 오름차순 posts = Post.objects.filter().order_by('-date') # models.py의 date 내림차순 # posts = Post.objects.all() # 게시글 목록 paginator = Paginator(pos.. 2021. 4. 9.
[장고 실전3] 7. 커뮤니티 : 회원가입 accounts 앱 > login.html 프로젝트 > urls.py accounts 앱 > views.py가입 기능 함수 메인앱 > 템플릿 > registe.html 다음 화면을 표시한 것처럼 수정하자 메인앱 > register.html사용자의 입력값을 받는 방식은 3가지 1. html태그2. django form3. django model form 지금까지 form은 django model form으로 구현했으나이번에는 html태그로 구현. {% csrf_token %} accounts 앱 > views.pyfrom ~ User 가져옴 유저객체에 데이터를 추가하므로 enw_user 새로운 유저 객체 만들기 # 가입 def signup(request): if request.method == "POST".. 2021. 4. 6.
[장고 실전3] 5. 커뮤니티 : 템플릿 가공 getbootstrap.com/docs/5.0/customize/color/ Color Bootstrap is supported by an extensive color system that themes our styles and components. This enables more comprehensive customization and extension for any project. getbootstrap.com 위 코드를 참고해서 원하는 색상으로 바꿔보자 초록색으로 바꿀것이므로 색상명은 success 변경할 색상은 side바 side바의 class명을 검색하자 현재는 파랑색(primary)가 들어가있는데 이를 민트색상(info)로 수정한다 수정된 화면 index.html 수정하기 {% extends .. 2021. 4. 3.
[장고 실전3] 4. 커뮤니티 : 로그인, 로그아웃 로그인/로그아웃계정관리 위한 앱 설치$ python manage.py startapp accounts 로그인 기능 추가하기 ※ POST 방식은 {% csrf_token %} 보안 설정이 무조건 되어있어야 한다. from django.shortcuts import render, redirect from django.contrib import auth # login,out을 위해 필수 def login(request) : # request == POST # Login if request.method == "POST" : username = request.POST["username"] password = request.POST["password"] user = auth.authenticate(request, .. 2021. 4. 1.
[장고 실전3] 3. 커뮤니티 : 댓글기능 구현 1. models.py : Comment 객체 정의 # 댓글 class Comment(models.Model) : comment = models.TextField() date = models.DateTimeField(auto_now_add=True) # Post를 참조(foreign)함 # 댓글달린 게시글이 삭제되면 참조객체도 삭제 post = models.ForeignKey(Post, null=True, blank=True, on_delete=models.CASCADE) # 게시글 작성시 DB에 title이 나오도록함 def __str__(self) : return self.comment 작성 후 DB에 반영 python manage.py makemigrations python manage.py mig.. 2021. 3. 30.
[장고 실전3] 2. 커뮤니티 : 디테일 페이지 A. 작성글 홈화면에 띄우기 1. views.py : 메인화면에 작성글 띄우는 함수작성 ※ Post클래스 활용과정 1-1. 앱 models.py > Post 클래스를 1-2. 앱 views. py에서 posts 쿼리셋으로 선언. posts는 Post클래스의 변수(title,body,date) 사용가능 from django.shortcuts import render, redirect from .forms import PostForm # forms.py의 PostForm객체 불러오기 from .models import Post # models.py로 부터 쿼리셋형태로 Post목록가져옴 def home(request) : # 글목록 출력 # posts는 쿼리셋 객체 posts = Post.objects.fil.. 2021. 3. 27.
[장고 실전3] 1. 커뮤니티 : 기초작업, 새글작성하기 활용할 부트스트랩 SB Admin 2 - Free Bootstrap Admin Theme A free Bootstrap admin theme, dashboard, or web application UI. All Start Bootstrap templates are free to download and open source. startbootstrap.com 다운 후 static 파일들, 템플릿 파일들을 분리하는 작업을 하자 참고로 Static file은 Javascript, CSS, Image 파일처럼 웹 서비스에서 사용하려고 미리 준비해 놓은 정적 파일입니다. 파일 자체가 고정되어 있고, 서비스 중에도 수시로 추가되거나 변경되지 않고 고정되어 있습니다 [장고 입문] 8. static 개념 설명 웹 서비.. 2021. 3. 24.
[장고 실전2] 7. 블로그 : 로그인/로그아웃 A. 로그인 기능 초기 셋팅 1. 새로운 앱 accounts 을 만들자 $ django-admin startapp accounts 2. 베이스 > settings.py : accounts앱 추가하기 3. 블로그앱 > templates > index.html : 최상단에 로그인 기능 추가하기 4. 베이스 > urls.py : login url 추가 from accounts import views as accounts_views path('login/', accounts_views.login, name='login'), 5. accounts 앱 > views.py from django.shortcuts import render def login(request) : # POST 요청이 들어오면 로그인 처리함 .. 2021. 3. 16.
[장고 실전2] 6. 블로그 : 댓글 구현하기 A. 댓글 객체 구현하기 1. models.py : 댓글 객체 구현 댓글 객체 생성 class Comment(models.Model) : comment = models.CharField(max_length=200) date = models.DateTimeField(auto_now_add=True) post = models.ForeignKey(Blog, on_delete=models.CASCADE) def __str__(self) : return self.comment django 게시글 삭제시 댓글 자동삭제 옵션들 Django model ForeinkeyField on_delete ... lee-seul.github.io 2. 수정한 객체를 DB에 반영하기 python manage.py makemigra.. 2021. 3. 16.
[장고 실전2] 5. 블로그 : 업로드 사용자 파일 업로드 기능 구현하기 A. 업로드 형태 만들기 1. settings.py 미디어 파일을 올리는 경로를 지정 BASE_DIR에서 media폴더안에 저장된다는 의미 import os MEDIA_ROOT = os.path.join(BASE_DIR, 'media') MEDIA_URL = '/media' 2. urls.py from django.conf.urls.static import static urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 3. models.py 이미지 값을 추가하자. class Blog(models.Model) : title = models.CharField(max_length=200,d.. 2021. 3. 13.
[장고 실전2] 4. 블로그 : 쿼리셋, 입력한 데이터를 HTML에 표현하기 입력한 데이터를 HTML에 표현해보자 A. 쿼리셋 1. views.py index.html에서 post를 활용할 수 있도록 만들기 위 코드는 모든 게시물을 렌더링 하는 코드 하단 코드는 최신순으로 정렬해서 렌더링하는 코드 2. index.html 출력화면 쿼리셋 : DB로부터 전달받은 객체 목록 그대로 불러오지 말고 템플릿 언어로 반복문 등을 만들어야 한다. B. 상세페이지 만들기 1. DB의 Primary키 먼저 데이터베이스의 프라이머리키에 대해 알아보자 models.py에서 객체(클래스)를 만들 때, 프라이머리키를 지정하지 않았다. 하지만 장고에선 알아서 프라이머리키를 id의 값으로 생성한다. Blog 클래스에선 변수가 3가지(title, body, date)이지만 여기에 id를 추가로 지정하면 웹 .. 2021. 3. 12.
[장고 실전2] 3. 블로그 : 작성한 글을 html에 띄우기 입력값을 DB에 저장하는 3가지 방법 A. HTML Form으로 입력값 DB에 저장하기지 방법 0. models.py 클래스 객체 생성 1. HTML Form으로 입력값 DB에 저장하기 urls.py : url, 함수, name 지정 views.py : 1. 함수 정의 2-1. render할 html 2-2. redirect할 대상 html 2. 앱 폴더 > views.py : 작성한 글을 DB에 반영해주는 create함수 만들기 3. runserver로 실행한 뒤, 게시글 작성 후 저장 4. admin으로 가면 작성한 글을 볼 수 있다. 순서 정리 B. Django Form으로 DB에 입력값 저장하기 1. 프로젝트 폴더 > urls.py 2. 앱 폴더 > templates 폴더 > index.html .. 2021. 3. 12.
[장고 실전2] 2. 블로그 : 프로젝트에 DB 생성하기 1. 가상환경 설치/실행 2. 장고 설치 3. 프로젝트 설치 4. 프로젝트 폴더 내 > 앱 설치 5. settings.py : 앱 등록 6. urls.py : home url 등록 7. 앱 폴더 > views.py : 함수 등록, html파일 지정 8. 앱 폴더 > templates폴더 > index.html 생성 9. python manage.py runserver 실행시 다음 내용 출력됨 You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions. Run 'python manage.py migr.. 2021. 3. 12.
반응형