목록Python_Django (50)
hyeonga_code
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/7GWN7/btskuPyPeAr/SmgSQUupjqDKrfrNozHjr0/img.jpg)
- 음성 기능 - pip install gTTS 1. 음성 기능 설치 터미널 ===== ''' (mysite) C:\mysite\앱이름> pip install gTTS Requirement already satisfied: gTTS in c:\users\hyeon\appdata\local\programs\python\python311\lib\site-packages (2.3.1) Requirement already satisfied: requests=2.27 in c:\users\hyeon\appdata\local\programs\python\python311\lib\site-packages (from gTTS) (2.28.2) Requirement already satisfied: click=7.1 i..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/1kKQ6/btskuO7LHve/rMTKUn1vNyowj3KNVKJAMk/img.jpg)
- 번역 기능 - pip install googletrans==4.0.0-rc1 1. 번역 기능 설치 터미널 ===== ''' (mysite) C:\mysite\앱이름> pip install googletrans==4.0.0-rc1 Collecting googletrans==4.0.0-rc1 Using cached googletrans-4.0.0rc1.tar.gz (20 kB) Preparing metadata (setup.py) ... done Collecting httpx==0.13.3 Using cached httpx-0.13.3-py3-none-any.whl (55 kB) Collecting certifi Using cached certifi-2022.12.7-py3-none-any.whl (15..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/sCDH6/btskym4c4OC/7JZ4pqDxRHQV6HbVSmOb61/img.jpg)
- 장고 연산 - pip install django-mathfilters - 장고에서 연산을 자유롭게 사용할 수 있게 함 - 작성 시 주의사항 - html 파일 맨 위에 {% load mathfilters %} 포함해야 연산오류 나지 않음 1. 연산 기능 설치 '터미널' =====1INSTALLED_APPS = [ 'mathfilters' ]cs ''' (mysite) C:\mysite\7일차(보드)> pip install django-mathfilters Collecting django-mathfilters Using cached django_mathfilters-1.0.0-py3-none-any.whl (5.9 kB) Installing collected packages: django-mathfilt..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/C7L4Q/btsknPsCKBs/xwAX2fiy9Yzi3tvb0ltPz0/img.jpg)
- 다량의 테이블 데이터 생성 ''' (mysite) C:\mysite\앱이름>python manage.py shell IndentationError: expected an indented block after 'for' statement on line 1 >>> for i in range(500): #_ 500개의 데이터 생성 ... s = f"{i+1}번째 데이터 제목" ... if i % 2 == 0: ... w = '작성자1' ... else: ... w = '작성자2' ... c = '첨부 내용' ... Board(타이틀=s, 작성자=w, 내용='test').save() ''' > 실행시 데이터 많아진 것 볼 수 있음
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/qCjV4/btssfRCk5P8/g6QsRJVKMkMOKlxOouLIJk/img.jpg)
- 메세지 띄우기 기능 구현 1. 사이트 실행 - messages info, success, warning, error messages.[태그](request,[메세지 내용]) > 'views.py' ===== 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 from django.contrib import messages def ulogin(request): if request.user.is_authenticated: return redirect("acc:index") if request.method == "POST": un = request.POST.get("uname") up = request.POST.get("upass") u = authenticate(usernam..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cWeOEj/btskCvlcWSQ/MrU90pO6j7FPtqcJaO9JP0/img.jpg)
- 데이터 간의 관계 - 1:N 관계 - 테이블끼리의 관계로 작업 - 1 : 부모테이블 - N : 자식 테이블 - ForeignKey 존재 - 1이 N을 호출할 수 있음 - N이 1을 호출하는 것은 어색함 - N : N 관계 - 서로 종속된 관계가 아님 - 좋아요, 구독, 팔로워, 팔로잉 'models.py' ===== 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 from django.db import models class Board(models.Model): subject = models.CharField(max_length=100) writer = models.CharField(max_length=100) content = mode..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bmNd6O/btssgoT8ZH6/RfDbMzQ7ynZ3sPUv04wpMK/img.jpg)
- 사이트 배포 1. google.com > "git" 검색 2. win 64-bit 다운 3. "github.com" 회원가입 4. "www.pythonanywhere.com" 회원가입 - gui에서 작업하면 오래걸릴 수 있음 5. 'github' > 'your repositories' > 'new' - 사이트 이름 설정 > 'create repositories' 6. cmd창 > 파일 저장 폴더까지 이동 C:\Users> cd c:\ c:\> cd mysite c:\mysite> cd '폴더이름' c:\mysite\'폴더이름'> git init # git 다운받아야함 Initialized empty Git repository in C:/mysite/'폴더이름'/.git/ c:\mysite\'폴더이름'..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/0WMyP/btssgLn2NTb/oS8sCJ4gNHgK1IjzjzsbvK/img.jpg)
- 투표 기능까지 전체 코드 1. > 'settings.py' 'settings.py' ===== 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 from pathlib import Path BASE_DIR = Path(__file__).resolve().parent.parent SECRET_KEY = 'django-insecure-43yzpkwlua_=x(jm)8%4j7#qth44sr^b3u..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b5qr8j/btskuPFzxjl/ZMz38fezYxEHyZAHJUQAIk/img.jpg)
- Form 검색 시, url에 검색 단어 들어감 - 검색창은 편의를 위한 용도일 뿐 url 분석하기 https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=0&ie=utf8&query=악동뮤지션 #_ ? : 이후는 서버에 전송 중인 데이터 #_ & : 변수 구분자 #_ = : 등호를 기준으로 오른쪽은 파라미터 값 왼쪽은 파라미터 이름 #_ query : 검색 인자 https://search.naver.com/search.naver?where=image&query=악동뮤지션&sm=tab_txc #_ ?where=image : #_ &query=악동뮤지션 : 검색 인자 https://comic.naver.com/webtoon/list?tit..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cbzhce/btssfXP4HfY/gOIQXfQqp2My9p9WtqKd5K/img.jpg)
- 좋아요 기능 구현 1. 좋아요 버튼 생성 > > 'detail.html' 'detail.html' ===== 1 좋아요 cs 2. 경로 설정 > 'urls.py' 'urls.py' ===== 1 urlpatterns = [ path('likey/', views.likey, name='likey') ] cs 3. 좋아요 함수 설정 > 'views.py' 'views.py' ===== 1 2 3 4 def likey(request, bpk): b = Board.objects.get(id=bpk) b.likey.add(request.user) return redirect('board:detail', bpk) cs = 좋아요 취소 기능 4. 좋아요 누른 후, 취소 버튼 생성 > > 'detail.html' ..