묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
서버가 안열려요
코드캠프 서버가 안 열려요 실습해야 하는데
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
db가 이미 존재한다는 오류가 뜹니다
graphql 방식이 아닌 rest로 변경하면서 다시한번 복습중인데 rest의 경우 app.module.ts에서 TypeOrmModule.forRoot({})에서 synchronize: true, 가 되어있을 시 db오류가 나는데 제가 다른 것을 잘못 설정한 것인가요?
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
<도커 컨테이너와 이미지 조사하기 14분20초>
동영상 보고 몇번 다시 따라했는데 docker kill mywebserver 이후에 다시 run 시키면 vi가 설치안되어있다고 뜹니다ㅜ 어느부분을 다시 확인해봐야 할까요
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
nodejs express에서 type(commonjs,module) 관련 질문
서버작동을 위한 node app.js를 실행할때에 dotenv를 require, import를 하면서 문의점이 발생했습니다. //server.js import { creatApp } from "./app.js"; import database from "./models/database.js"; const startServer = async () => { try { await database; const app = creatApp(); const PORT = process.env.PORT; app.listen(PORT, () => { console.log(`server is listening on ${PORT}👌`); }); } catch (err) { console.log(`Failed server connect❌`); database.destroy(); } }; startServer(); //database.js import { createConnection } from "typeorm"; import dotenv from "dotenv"; dotenv.config(); const database = createConnection({ type: process.env.DB_CONNECTION, host: process.env.DB_HOST, username: process.env.DB_USERNAME, password: process.env.DB_PASSWORD, port: process.env.DB_PORT, database: process.env.DB_DATABASE, }); export default database; 이렇게 진행하면 정상적으로 서버가 정상적으로 작동하지만 database.js에서의 dotenv import 부분을 require방식으로 server.js에 옮겨놓으면 에러가 발생합니다.근본적으로 commonJS(require)방식과 module(import)방식에 대해서 dotenv를 불러올때에 require를 쓰면 server.js에 적용할때는 정상적으로 작동하는데 import를 똑같은상황에서 적용하려면 왜 database.js로 넘어가야하는지 그게 궁금해졌습니다!require와 import를 해올 때 전반적으로는 rquire는 동기적이고 import비동기적인 성질(?)때문이라고 하기에 영향이 있는건지.. 근본적인 이해가 되지 않아서요..ㅠㅜ 도움 부탁드리겠습니다 ㅠㅜ!!!!
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
axios 401에러가 났습니다
401 에러가 나서 제가 구글링을 나름 해보니, 토큰인증의 문제가 원인이라고 하는데 아직 토큰발급을 적용하지 않았는데 이런 에러가 나는 이유는 무엇일까요..Signup.js 부분은 선생님의 코드와 완전히 같습니다. import React, { useState } from "react"; import Axios from "axios"; export default function Signup() { const [inputs, setInputs] = useState({}); const onSubmit = e => { e.preventDefault(); Axios.post("http://localhost:8000/accounts/signup/", inputs) .then(response => { console.log("response: ",response); }) .catch(error => { console.log("error: ",error); }); }; const onChange = e => { const {name, value} = e.target; setInputs(prev => ({ ...prev, [name]: value })); }; return ( <div> <form onSubmit={onSubmit}> <input type="text" name="username"onChange={onChange}/> <input type="password" name="password" onChange={onChange}/> <input type="submit" value="회원가입" /> </form> </div> ); }백엔드 단에서는 구조가 약간 다르긴 하지만 accounts 부분은 크게 다르지 않습니다.accounts/models.py from django.db import models class User(models.Model): user_id = models.CharField(max_length=32, unique=True, verbose_name='id') user_pw = models.CharField(max_length=128, verbose_name='password') user_name = models.CharField(max_length=16, unique=True, verbose_name='name') user_Email = models.EmailField(max_length=128, unique=True, verbose_name='email') def __str__(self): return self.user_name #오브젝트 호출시 user_name으로 표시 class Meta: #DB 테이블 명 지정 db_table = 'user' verbose_name = 'user' accounts/serializers.py from rest_framework import serializers from django.contrib.auth import get_user_model User = get_user_model() class SignupSerializer(serializers.ModelSerializer): #pw 보안 password = serializers.CharField(write_only=True) def create(self, validated_data): user = User.objects.create(username=validated_data["username"]) user.set_password(validated_data["password"]) #암호화된 비번 저장 user.save() return user class Meta: model = User fields = ["pk", "username", "password"]from django.urls import path from . import views urlpatterns = [ path('signup/', views.SignupView.as_view(), name='login'), ] from django.contrib.auth import get_user_model from django.shortcuts import render from rest_framework.permissions import AllowAny from rest_framework.generics import CreateAPIView from .serializers import SignupSerializer #회원가입 뷰 #createapiview 이므로 get 메소드 허용X class SignupView(CreateAPIView): model = get_user_model() serializer_class = SignupSerializer Permission_classes = [ AllowAny,#실제로 회원가입할 때는 로그인은 되면 안됨 ] 혹시 뭐가 원인일지 추측이라도 해주시면 감사하겠습니다..혹시 버전문제일 수도 있을까요? 현재 장고는 3.2 리액트는 18이긴합니다
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
데이터 베이스 연결 에러 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 강의 도중 데이터베이스 연결 설정 후 에러가 나서 질문 드립니다!혹시 뭐 터미널이 달라서 그럴까요?
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
강의 리뉴얼 일정은 어떻게되나요?
강의 리뉴얼 한다고 공지 쓰셨는데 완료 일정이 어떻게될까요그때가 오면 다시한번 보려구요!
-
미해결데브옵스(DevOps)를 위한 쿠버네티스 마스터
로컬에서 실습하고 있습니다. web-0 pending
스테이트풀셋 실습에서 로컬에서 실습을 하려면 어떻게 하면 될까요강사님과 동일하게 하면 kubectl get pod에서 web-0 이 계속 pending 상태 입니다 root@master:~# kubectl get podNAME READY STATUS RESTARTS AGEweb-0 0/1 Pending 0 10s
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
mongo 실행 불가
안녕하세요 몽고디비를 다시 복습하고자 공부하던중 저번에 brew update를 통해 해결 된줄 알았지만 또 다시 같은 오류가 발생하였습니다... 이 에러는 어떠한 에러인지 찾아보고 gpt에다가 물어봐도 안나오는데.. 혹시 무엇 때문에 몽고가 brew services start mongodb-community 를하게 되면 이 오류가 발생하게 됩니다.. 도와 주세요..ㅠㅠ
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
ER_TABLE_EXISTS_ERROR:
db.pool.query(`CREATE TABLE list ( id INTEGER AUTO_INCREMENT, value TEXT, PRIMARY KEY (id))`, (err, results, fields) => { console.log('err: ', err); console.log('results: ', results); });server.js 의 위 부분 실행시, 아래와 같은 오류가 출력되는데 어떤 부분을 수정해야될까요?참고로 테이블명은 강의와 다르게 list로 했고, err 확인을 위해 console.log('err: ', err); 추가했습니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
axios를 활용한 데이터 통신
핸드폰 번호를 입력하면 페이지 상에서는개발자 도구에서 이렇게 잘 나오지만vscode console에 찍어보면 myphone 번호가 아니라 undefined로 나옵니다.아래는 phone.js 코드입니다. (length에서 자꾸 에러가 나서 그 부분만 수정된 코드입니다.)function checkPhone(myphone) { //1. 휴대폰 번호 자릿수 맞는지 확인하기(10-11자리) if (myphone && myphone.length < 10 || myphone && myphone.length > 11) { console.log("에러 발생!!! 휴대폰 번호를 제대로 입력해주세요."); return false; } else { return true; } } //2. 인증번호 6자리 만들기 function getToken() { const result = String(Math.floor(Math.random() * 1000000)).padStart(6, "0"); console.log(result); return result; } //3. 핸드폰 번호에 토큰 전송하기 function sendTokenToSMS(myphone, result) { console.log(myphone+ "번호로 인증번호" + result + "를 전송합니다."); } module.exports = { checkPhone, getToken, sendTokenToSMS };이건 signup.html<!DOCTYPE html> <html lang="ko"> <head> <title>회원가입 연습하기</title> <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script> <script> function zzz(){ //1. 입력한 휴대폰 번호 가져오기 const myphone = document.getElementById("myphone").value console.log("나의 핸드폰 번호 : ", myphone) //2. 해당 휴대폰 번호로 인증번호 API 요청하기 axios.post("http://localhost:3000/tokens/phone", { qqq: myphone }).then((res) =>{ console.log(res.data) document.getElementById("result").innerText = res.data }) } </script> </head> <body> 휴대폰 번호 : <input id="myphone" type="text"/><button onclick="zzz()">인증하기</button> <div id="result">인증상태</div> <button>회원가입하기</button> </body> </html> index.js const express = require('express'); const { checkPhone, getToken, sendTokenToSMS } = require('./phone.js'); const swaggerUi = require('swagger-ui-express'); const swaggerJsdoc = require('swagger-jsdoc'); const {options} = require('./swagger/config.js'); const swaggerSpec = swaggerJsdoc(options); const cors = require('cors'); const app = express(); //use : 모든 메소드에서 작동한다. app.use(express.json()) app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec)); app.use(cors()) //GET 방식의 API를 만들겠다. //endpoint는 /로 하겠다. // /qqq이쪽 endpoint로 누군가 요청을 하면 아래 함수를 실행을 시키겠다. app.get('/boards', function (req, res) { //1.DB에 접속 후, 데이터를 조회. 조회한 데이터를 객체로 담아온다. const result = [ {number : 1, writer: "철수", title : "제목입니다.", contents: "내용이에요."}, {number : 2, writer: "영희", title : "제목입니다.", contents: "내용이에요."}, {number : 3, writer: "훈이", title : "제목입니다.", contents: "내용이에요."}, ] //2.DB에서 꺼내온 결과를 브라우저에 응답(response)으로 주기 res.send(result) }, function (req, res){ }) app.post('/boards', function (req, res) { //1. 브라우저에서 보내준 데이터 확인하기 console.log(req) console.log("=====") console.log(req.body) //2. DB에 접속 후, 브라우저에서 받은 데이터를 디비에 저장해야 함. //3. DB에 저장된 결과를 브라우저에 응답(response) 주기 res.send('게시물 등록에 성공하였습니다.') }) app.post('/tokens/phone', function(req, res){ const myphone = req.body.phone //1. 휴대폰번호 자릿수 맞는지 확인 (10-11자리) const isValid = checkPhone(myphone) if(isValid === false) return //2. 핸드폰 토큰 6자리 만들기 const myToken = getToken() //3. 핸드폰 번호에 토큰 전송하기 sendTokenToSMS(myphone, myToken) res.send("인증완료!!!") }) //포스트맨에서 send 버튼 누르는 것 = 기다린다 = listen app.listen(3000)
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
docker-compose up 시 에러
docker-compose up 을 실행하면 아래와 같은 에러가 발생하고,nginx: [emerg] host not found in upstream "frontend:3000" in /etc/nginx/conf.d/default.conf:3docker ps 를 해봤을 때, nginx와 mysql 이름으로된 컨테이너는 있는데 frontend, backend는 없는걸로 봐서 호스트나 포트를 못찾는게 맞는 것 같긴해요.깃헙에 있는 파일들 비교했을 때는 틀린부분이 없는 것 같은데, 어떤부분을 확인해보는게 좋을지 알려주실 수 있나요 ? 구글링한 정보 를 적용해봐도 같은 에러가 나오네용..ㅠㅠ
-
미해결대세는 쿠버네티스 (초급~중급편)
pod 추가시 문제가 발생합니다
30분도 안돼서 강의 따라하는데 만나는 에러가 너무 많네요.. 앞에 있던 에러들은 어떻게든 해결했는데 pod를 yaml파일로 추가하는 과정에서 다음과 같은 에러가 발생합니다. Failed to pull image "kubetm/p8000": rpc error: code = Unknown desc = Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp: lookup registry-1.docker.io on 10.0.2.3:53: read udp 10.0.2.15:34804->10.0.2.3:53: i/o timeout같은 질문이 게시판에 있는걸 봤는데 그저 기다리라고 하시는데.. 다른 방법 없나요?? 거의 1시간째 기다리고 있는데..
-
미해결데브옵스(DevOps)를 위한 쿠버네티스 마스터
섹션6:인그레스(ingress) 실습 - 인그레스 통한 접속 시 IP 문제
강의 : 섹션6:인그레스(ingress) 실습위치 : 7분 43초 경안녕하세요.인그레스 서비스를 올린 후, curl 통해서 접속 테스트 시에 127.0.0.1 이 아니라 인그레스 IP로 직접 curl을 해야 접속이 됩니다.실행 ❌ : curl 127.0.0.1:{인그레스 PORT}실행 ⭕ : curl {인그레스 IP}:{인그레스 PORT}아래는 인그레스 정보입니다.root@master0:/home/user01# kubectl get ing NAME CLASS HOSTS ADDRESS PORTS AGE http-go-ingress <none> * 192.168.32.134 80 17h root@master0:/home/user01# kubectl get all -n ingress-nginx NAME READY STATUS RESTARTS AGE pod/ingress-nginx-admission-create-s4j5j 0/1 Completed 0 14h pod/ingress-nginx-admission-patch-f9jwd 0/1 Completed 0 14h pod/ingress-nginx-controller-6b58ffdc97-9d9hd 1/1 Running 0 14h NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/ingress-nginx-controller NodePort 10.97.10.247 <none> 80:30450/TCP,443:30058/TCP 14h service/ingress-nginx-controller-admission ClusterIP 10.106.36.94 <none> 443/TCP 14h NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/ingress-nginx-controller 1/1 1 1 14h NAME DESIRED CURRENT READY AGE replicaset.apps/ingress-nginx-controller-6b58ffdc97 1 1 1 14h NAME COMPLETIONS DURATION AGE job.batch/ingress-nginx-admission-create 1/1 5s 14h job.batch/ingress-nginx-admission-patch 1/1 7s 14h root@master0:/home/user01# curl 192.168.32.134:30450 <html> <head><title>404 Not Found</title></head> <body> <center><h1>404 Not Found</h1></center> <hr><center>nginx</center> </body> </html> root@master0:/home/user01# curl 192.168.32.134:30450/welcome/test Welcome! http-go-56686cfd44-7rsch root@master0:/home/user01# curl 127.0.0.1:30450/welcome/test curl: (7) Failed to connect to 127.0.0.1 port 30450: Connection refused 실습 명령어는 똑같이 따라했으며, 3번을 반복해도 같은 결과이네요..'마스터 노드-인그레스 노드' 간의 포트포워딩? 이 되어야 하는건지, 아니면 제가 빠트린 설정이 있는것인지 알고 싶습니다😢
-
미해결그림으로 배우는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
Tolerations 설정
질문 답변을 제공하지만, 강의 비용에는 Q&A는 포함되어 있지 않습니다. 다만 실습이 안되거나, 잘못된 내용의 경우는 알려주시면 가능한 빠르게 조치하겠습니다![질문 전 답변]1. 강의에서 다룬 내용과 관련된 질문인가요? [예 | 아니요]2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? [예 | 아니요]3. 질문 잘하기 법을 읽어보셨나요? [예 | 아니요](https://www.inflearn.com/blogs/1719)4. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.[질문 하기]안녕하십니까? 강사님. 한가지 궁금한 점이 있어서 이렇게 게시판에 글을 남기게 되었습니다.강의 내용 : CH6/6.7 테인트와 톨러레이션 관련.6.7 실습을 진행하던 중 daemonset-w-tolerations.yaml를 수행을 했을때 저는 Master Node로 할당이 되지 않고 계속 worker Node로만 생겨서 4-5회 정도 delete -fapply -f 를 연달아 진행을 했는데도 계속 worker Node로만 할당이 되었습니다.그래서 k cordon으로 하나의 Worker Node를 막아 놓고 한번 돌려볼까 했는데 오히려 그 Worker Node로도 막히지 않고 pod가 생성이 되고 Master는 여전히 배포가 되지 않았습니다. 도무지 왜 그런지 찾기가 어려워서 뭔가 제 실습에 문제가 있었던 것인지 좀 궁금해서 게시판에 글을 올리게 되었습니다. 아래 상황 로그를 같이 첨부합니다.정리하면 k apply -f daemonset-w-tolerations.yamlmaster로는 할당이 되지 않음.worker Node 3번에 cordon 명령으로 하나를 막아두고 진행하였으나 여전히 master로 할당되지 않고 Worker Node 3번에도 여전히 할당됨.(cordon 테스트 시에는 잘 되었었는데 Toleratation Yaml 파일 실행시에는 이런 현상이 보임)[root@m-k8s 6.7]# k get nodeNAME STATUS ROLES AGE VERSIONm-k8s Ready control-plane 221d v1.25.1w1-k8s Ready <none> 221d v1.25.1w2-k8s Ready <none> 221d v1.25.1w3-k8s Ready,SchedulingDisabled <none> 221d v1.25.1[root@m-k8s 6.7]# ls -trltotal 20-rwx------. 1 root root 409 Apr 18 18:22 init-taints.sh-rw-r--r--. 1 root root 432 Apr 18 18:22 deployment-w-tolerations.yaml-rw-r--r--. 1 root root 760 Apr 18 18:22 deployment-w-tolerations-nodeaffinity.yaml-rw-r--r--. 1 root root 337 Apr 18 18:22 deploy-after-taints.yaml-rw-r--r--. 1 root root 427 Apr 18 18:22 daemonset-w-tolerations.yaml[root@m-k8s 6.7]# k apply -f daemonset-w-tolerations.yamldaemonset.apps/daemonset-w-tolerations created[root@m-k8s 6.7]#[root@m-k8s 6.7]#[root@m-k8s 6.7]# k get po -o wideNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATESdaemonset-w-tolerations-dhh6c 1/1 Running 0 6s 172.16.103.140 w2-k8s <none> <none>daemonset-w-tolerations-ktvjb 1/1 Running 0 6s 172.16.132.21 w3-k8s <none> <none>daemonset-w-tolerations-t48fx 1/1 Running 0 6s 172.16.221.144 w1-k8s <none> <none>net 1/1 Running 0 4h7m 172.16.103.133 w2-k8s <none> <none>nfs-client-provisioner-fdccb6545-6wgnw 1/1 Running 0 22h 172.16.221.137 w1-k8s <none>
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
문의 드립니다
안녕하세요 백엔드쪽로 준비하는 사람이면 로드맵으로 두개다 구매해도 우선 백엔드쪽 강의 수강만 집중하는것이 나을까요?아님 프론트-> 백엔드 순으로 하면 더 도움이될까요?
-
미해결데브옵스(DevOps)를 위한 쿠버네티스 마스터
vm에서 도커 설치시 에러 발생 문제
apt install docker.io 실행 후에 진행이 안되고 계속 기다리면 오류 http://kr.archive.ubuntu.com/ubuntu/ maverick/main openbsd-inetd i386 0.20080125-4ubuntu2kr.archive.ubuntu.com:80에 연결할 수 없습니다(143.248.234.110). - connect (110: 연결 시간 초과)오류 http://kr.archive.ubuntu.com/ubuntu/ maverick/universe telnetd i386 0.17-36build1kr.archive.ubuntu.com:http에 연결할 수 없습니다:http://kr.archive.ubuntu.com/ubuntu/pool/main/o/openbsd-inetd/openbsd-inetd_0.20080125-4ubuntu2_i386.deb 파일을 받는데 실패했습니다 kr.archive.ubuntu.com:80에 연결할 수 없습니다 (143.248.234.110).- connect (110: 연결 시간 초과)http://kr.archive.ubuntu.com/ubuntu/pool/universe/n/netkit-telnet/telnetd_0.17-36build1_i386.deb 파일을 받는데 실패했습니다kr.archive.ubuntu.com:http에 연결할 수 없습니다:라는 에러가 떠서 이래저래 구글링했더니 한국 KR 우분투 서버가 죽어서 그런거라고sources.list를 수정하라고 해서 kr.archive.ubuntu.com을 ftp.daum.kakao.com 으로변경했는데도 계속 같은 오류가 뜹니다. 설치를 못해서 진도를 못나가고 있는데 해결 방법 좀 알려주실수 있을까요?virtual box는 5.2이고 설치파일은 올려주신 링크에서 받았습니다.
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
[Minor] 부트스트랩 CSS/Jquery/JS/테마적용 후 테이블영역 꽉 안차는 문제
Minor 한 이슈 질문드립니다. (부트스트랩CSS 라서요..ㅎㅎ)우선 해결은 했으나, 왜 해결됬는지 이해가 안되서질문내용: 테이블부분이 꽉차지 않은 이슈댓글내용에 적어놨습니다. layout.html 에 부트스트랩 워치 테마적용(CSS) 부분 수강중 입니다.위 이미지 처럼 꽉찬 화면이 저만 안되는데(???) 이유를 모르겠습니다. (해당화면 스크롤은 질문캡쳐용으로 잠시 zoom out 한 상태입니다.)서버재시작브라우저 강제 새로고침강사님과 동일한 테마(simplex) 도 안되고 있습니다.<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootswatch@4.5.2/dist/sketchy/bootstrap.min.css" integrity="sha384-RxqHG2ilm4r6aFRpGmBbGTjsqwfqHOKy1ArsMhHusnRO47jcGqpIQqlQK/kmGy9R" crossorigin="anonymous"> <script src="https://code.jquery.com/jquery-2.2.4.js" integrity="sha256-iT6Q9iMJYuQiMWNd9lDyBUStIq/8PuOW33aOqmvFpqI=" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.min.js" integrity="sha384-+sLIOodYLS7CIrQpBjl+C7nPvqq+FbNUBDunl/OZv93DB7Ln/533i8e/mZXLi/P+" crossorigin="anonymous"></script>layout.html 전체코드<!doctype html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>{% block title %}{% endblock title %}</title> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootswatch@4.5.2/dist/sketchy/bootstrap.min.css" integrity="sha384-RxqHG2ilm4r6aFRpGmBbGTjsqwfqHOKy1ArsMhHusnRO47jcGqpIQqlQK/kmGy9R" crossorigin="anonymous"> <script src="https://code.jquery.com/jquery-2.2.4.js" integrity="sha256-iT6Q9iMJYuQiMWNd9lDyBUStIq/8PuOW33aOqmvFpqI=" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.min.js" integrity="sha384-+sLIOodYLS7CIrQpBjl+C7nPvqq+FbNUBDunl/OZv93DB7Ln/533i8e/mZXLi/P+" crossorigin="anonymous"></script> <style> body{ padding-top: 5rem; } </style> </head> <body> <!-- begin::header --> <nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top"> <a class="navbar-brand" href="#">Navbar</a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault" aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarsExampleDefault"> <ul class="navbar-nav mr-auto"> <li class="nav-item active"> <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a> </li> <li class="nav-item"> <a class="nav-link" href="#">Link</a> </li> <li class="nav-item"> <a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="dropdown01" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a> <div class="dropdown-menu" aria-labelledby="dropdown01"> <a class="dropdown-item" href="#">Action</a> <a class="dropdown-item" href="#">Another action</a> <a class="dropdown-item" href="#">Something else here</a> </div> </li> </ul> <form class="form-inline my-2 my-lg-0"> <input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search"> <button class="btn btn-secondary my-2 my-sm-0" type="submit">Search</button> </form> </div> </nav> <!-- end::header --> {% block content %} {% endblock content %} </body> </html> post_list.html 전체코드{% extends "instagram/layout.html" %} {% load bootstrap4 %} {% block title %} Instagram / Post List {% endblock title %} {% block content %} <form action="" method="get"> <label> <input type="text" name="q" value="{{ q }}" placeholder="검색할 게시물의 message를 입력하세요"> </label> <input type="submit" value="검색 "> </form> {% if post_list %} <table class="table table-bordered table-hover table-striped table-responsive"> <tbody> {% for post in post_list %} <tr> <td>{{ post.pk }}</td> <td> {% if post.photo %} <img src="{{ post.photo.url }}" width="100px" height="100px" alt="{{ post.photo }}"> <br> (post.photo값: {{ post.photo }}) {% else %} No photo <br> (post.photo값: {{ post.photo }}) {% endif %} </td> <td> <!-- 장고 스타일(URL Reverse / get_absolute_url 메서드 이용) --> <a href="{{ post.get_absolute_url }}"> {{ post.message }} </a> <!-- 장고 스타일(URL Reverse 이용) --> {# <a href="{% url 'instagram:post_detail' post.pk %}">#} {# {{ post.message }}#} {# </a>#} <!-- 기존 --> {# <a href="/instagram/{{ post.pk }}/">#} {# {{ post.message }}#} {# </a>#} </td> </tr> {% endfor %} </tbody> </table> {% else %} <p>검색 결과가 없습니다.</p> {% endif %} {% if is_paginated %} {% bootstrap_pagination page_obj size="large" justify_content="center" %} <h2>paginator</h2> <div> {{ paginator }} </div> <h2>page_obj</h2> <div> {{ page_obj }} </div> <h2>is_paginated</h2> <div> {{ is_paginated }} </div> <h2>object_list</h2> <div> {{ object_list }} </div> <h2>post_list</h2> <div> {{ post_list }} </div> {% endif %} {% endblock content %}
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
파이썬 코드를 저장했을때 자동으로 서버가 재실행 되지 않습니다..
settings 를 common, dev, prod 3개로 만들고 부터 안되는데 무슨 문제일까요
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
graphQL에서 @apollo/server의 port번호는 4000번으로 default가 되어있는것 같습니다.
v3버전 이후로는 server.listen에 대한 값이 없는것같아서 port번호를 4000번으로 기본설정해놓는걸 console.log로 확인할 수 있는 방법과 혹시 port번호를 변경하고자 할때는 어떻게 해야하는지 알 수 있을까요?계속 해메고 있네요,,,