목록웹개발 (46)
주뇽's 저장소
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bHOeG7/btsrwldNKm2/Izap8eek8vQgSDymeCKJrK/img.png)
1. Header 꾸미기 Full Stack Project nav1 nav2 nav3 2. Footer 꾸미기 공지사항 | 서비스소개 | 제휴문의 Full Stack Project 3. 경계선 추가 태그 이용 {%include 'head.html'%} {%include 'header.html'%} {%block content%} {%endblock%} {%include 'footer.html'%} 4. 부트스트랩 적용 Introduction 위 코드를 복사 후 head에 삽입 5. 폰트 적용 Browse Fonts - Google Fonts 원하는 폰트를 고른 후 select 링크를 헤드에 삽입 후 CSS font를 원하는 태그에 삽입 Header Full Stack Project nav1 nav2 na..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Vh3pf/btsrxMIKSbm/8J8gkRxLmksPvwdkmwK2K0/img.png)
include와 extends는 템플릿 시스템의 중요한 개념이다. 1. Include include는 템플릿에서 다른 템플릿 파일을 포함시키는 방법을 제공한다. 이를 통해 템플릿 파일 간의 재사용성을 높일 수 있다. 예를 들어, 같은 페이지의 여러 부분에서 동일한 HTML 코드를 사용해야 할 때 유용하다. 예시: 다음은 header.html 파일과 footer.html 파일을 page.html 파일에 포함시키는 예제이다. header.html footer.html © 2023 My Website page.html {% include "header.html" %} Welcome to My Website This is the content of the page. {% include "footer.html" ..
원하는 앱 Accountapp 생성 후 등록 #-- /myprojcet python manage.py startapp accountapp main app은 django-admin startproject myproject 명령어를 통해 생성한 myproject이므로 방금 만든 Accountapp을 설정에 추가해야한다. /myprojcet/setting.py에 방금 생성한 app 추가 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'a..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bxIS3B/btsrq6NU3f1/TCEYISKT0afdAJvwJlHGHk/img.png)
인프런 Hyong Sok Park님의 작정하고 장고 Django로 Pinterest 따라만들기 : 바닥부터 배포까지를 참고하여 정리하였습니다. Front End HTML CSS JS(잘 다루지 않음_) BackEnd Maria DB NGIX Django Docker 0. 가상환경 및 장고 설치 가상환경 및 장고 설치 Python Venv 가상환경 설치 python -m venv fullstack(자신이 원하는 가상환경 이름) source fullstack/bin/activate 장고 설치 및 프로젝트 생성 pip install django django-admin startproject myproject(자신이 원하는 프로젝트 이름) . 로컬 서버 확인 python manage.py runserver 아직..
본 정리는 인프런 John Ahn 따라하며 배우는 노드, 리액트 시리즈 - 기본 강의를 참고하였습니다. 전체 흐름도 로그아웃은 이미 로그인이 되어있으므로 해당 유저 데이터베이스에서 토큰만 삭제하면 됨 index.js 파일에 다음 코드 추가 app.get('/api/users/logout', auth, (req, res) =>{ User.findOneAndUpdate({_id:req.user._id,}, {token :""}, (err,user)=>{ if(err) return res.json({ success : false, err, }) return res.status(200).send({success:true}) }) }) 포스트맨에서 로그인 후 로그아웃 확인 데이터베이스에서 토큰 삭제 확인 로그아웃..
본 정리는 인프런 John Ahn 따라하며 배우는 노드, 리액트 시리즈 - 기본 강의를 참고하였습니다. 전체 흐름도 페이지별로 로그인 또는 관리자 확인 필요한경우 체크하기 위해서 서버는 토큰을 데이터베이스에 저장되어 있음 클라이언트는 토큰을 쿠키에 저장되어 있음 인증을 위해서는 중간에 인증처리를 해줄 미드웨어가 필요 middleware/auth.js 파일 생성 후 다음 코드 추가 const {User} = require("../Models/User");// 미리 정의했던 모델 가져오기 const { request } = require("express"); let auth = (req, res, netx) =>{ //인증 처리를 하는 곳 // 1. 클라이언트에서 토큰을 가져옴 let token = req...
본 정리는 인프런 John Ahn 따라하며 배우는 노드, 리액트 시리즈 - 기본 강의를 참고하였습니다. 전체 흐름도 요청된 이메일을 데이터베이스에서 찾기 //몽고DB에서 제공하는 find함수 사용 // 1. 요청된 이메일을 데이터베이스에서 찾기 User.findOne({email: req.body.email}, (err, user)=>{ if(!user){ return res.json({ loginSuccess : false, massage : "제공된 이메일에 해당하는 유저가 없음" }) } 요청된 이메일이 있다면 비밀번호 체크 // Model/User.js userSchema.methods.comparePassword = function(plainPassword,callbackfunk) { // pl..
본 정리는 인프런 John Ahn 따라하며 배우는 노드, 리액트 시리즈 - 기본 강의를 참고하였습니다. 현재 비밀번호는 데이터베이스에 그대로 노출되기 때문에 관리해야함 다음명령어로 bycrypt 설치 npm install bcrypt --save Bycrypt로 비밀번호 암호화 하는 순서 먼저 Register Route에서 save하기전 (index.js) 유저 정보들을 데이터 베이스에 저장하기 전 암호화 Salt salt를 생성하고 이용해서 비밀번호를 암호화 Models/User.js 파일 수정 전체 코드 const mongoose = require('mongoose'); const bcrypt = require('bcrypt'); const saltRounds = 10; // 10자리를 이용하여 생성..