목록Programing Language/Web_Django (39)
완숙의 블로그
media 파일 다루기 장고에서 미디어 파일을 다루려면, settings.py 에 추가적으로 파라미터를 설정해줘야 한다. class User(AbstractUser): """ Custom User Model """ avatar = models.ImageField(upload_to="avatar", blank=True) 일단 models.py에서 ImageField 로 설정을 해준 뒤에 admin 패널에서 파일을 추가하면, 그런데, 지금은 경로가 avatar 폴더 안에 있지만, 이건 설정을 해주었기 때문이고, 설정을 해주지 않게 되면, 가장 상위 폴더에 지저분하게 사진들이 업로드된다. 이 부분을 막고, 추가적으로 저 사진 경로를 클릭했을 때, 사진을 볼 수 있도록 만들어보자. Media_root, Medi..
admin.py 장고의 admin 패널을 사용할 수 있게 된다. @admin.register(models.Room) class RoomAdmin(admin.ModelAdmin): """ Room admin Definition """ fieldsets = ( ( "Basic Info", {"fields": ("name", "description", "country", "address", "price")}, ), ("Times", {"fields": ("check_in", "check_out", "instant_book")}), ("Spaces", {"fields": ("guests", "beds", "bedrooms", "baths",)}), ( "More About the Space", { "classe..
QuerySet 쿼리셋은 장고에서 가장 유용하게 사용하는 것들 중의 하나이다. 굉장히 직관적으로만 설명할 것이니 참고하길 바란다. 기본적으로 모델을 만들 때, 다른 모델과의 관계를 가질 수 밖에 없다. 그 관계로는 ForeignKey, ManyToManyField가 있다. 한명의 사용자에 여러 개의 방이 있을 수 있는 것이 ForeignKey, 한 방이 여러개의 부가시설(wifi, 전자레인지 등)을 가질 경우 ManyToManyField이다. 그렇다면, 방에 해당하는 User를 알 수 있을까? class Room(core_models.TimeStampedModel): """ Room Model Definition """ host = models.ForeignKey( "users.User", on_dele..
설치가 완료되었다면 pgAdmin 4 라는 앱이 설치가 되었을 것이다. 이녀석을 클릭하면, 이런녀석이 뜰거다. sqlite를 써봤을 때와 같이 이녀석은 하나의 서버이다. 여기서 Sever 버튼을 누르고 그 아래 버튼을 누르면, 여기에 아까 처음에 기억해둔 패스워드를 넣어주자. 그럼 이런식으로 화면이 뜰텐데, 결국 이게 DB를 그래프로 깔끔하게 나타낸 상태이다. 이제 우리는 여기서 내가 데이터를 저장할 새로운 데이터베이스를 만들어볼 거다! 실습 databases => create => Database 를 눌러주자. 그리고 데이터베이스의 이름과 내용을 담아주자. Owner 는 이 데이터베이스의 사용자, superuser, admin 으로 생각하면 된다. 저장을 눌러주면, Databases 에 새로운 데이터 ..
SQLite는, 소규모 프로젝트에 적합하다. 그런데, 프로젝트의 스케일이 커질 경우 부적합하다. 그래서 이걸 대체할 수 있는게, ORACLE, MYSQL, postgreSQL 등이 있는데, 이걸 써보자!(무료) 우리가 모델을 배울때, 장고 프로젝트와 데이터 베이스는 별개다 라는 얘기를 했었다. 기억안나면 model부분 다시 보고 오자! 모델/어드민 그러면, 지금 우리가 사용했던 sqlite를 어떻게 사용했는지 생각해보자. 이렇게 project 가 저걸 쓰겠다고 가리키고, 연결하겠다고 선언하고 쓰는거야. 이걸 어디에 명시해줬냐면, settings.py 에서 선언했었다. 가리키기 # settings.py DATABASES = { 'default': { 'ENGINE': '..
지금까지 만들었던 소셜 로그인 프로젝트에서 시작해보자. 소셜로그인을 수행하는 앱 이름은, 내프로젝트 기준으로 goologin 이다. 이 녀석을 패키징 해보자. 먼저 프로젝트 파일 안에 새로운 폴더를 만들자. 여기서 이 만든 폴더 pack_ 안에 goologin 이라는 앱 자체를 이동 해주자! 이동이다. 이 폴더의 의미는, 나중에 이 폴더 기반으로 패키징을 하겠다! 하고 알려주는 역할이다. 그리고, 이 폴더에 필요한 4가지 파일을 만들어줄거다. 그럼 이 안에 무엇을 넣어줘야 할까? 장고 documentation 여기 들어가면 알려준다. README.rst ===== polls ===== Polls is a simple Django app to conduct Web-based polls. For each q..
우리는 앱을 만들때, 하나의 기능을 수행할 것이라 가정하고 만든다. 그렇기 때문에 이녀석을 가져와서 사용하면 아주 좋다! 그래서 이녀석들을 패키지 화 해서 넣어줄거야. 패키지? 우리 이미 사용해 봤다! $ python install PACKAGE 결국 앱을 재사용하려면, Packaging Install 두 과정을 해주면 된다! 그럼 패키징 을 어떻게 해주면 될까? How to package 패키징을 하려면, 특정 몇개의 파일이 필요하다. 그러면 어떤 녀석을 해줘야할까? 바로 이녀석들! 패키지의 소개, 설명서 라이센스 설치 방법 파이썬 파일 아닌 파일들을 설명 이걸 만들고 나서 명령어를 치면 패키징이 된다! 실습으로 가보자!
기능을 사용하는 것만 배워보자! 그런데, 왜 이걸 굳이 배워야 할까?? static이나 media로 올려주면 되지 않을까?? 섬네일 기능을 사용하면 좋은 점 썸네일 파일 지정이 용이하다. 파일의 용량관리가 용이하다. 파일 분류에 효율적이다. (섬네일은 섬네일 끼리) 사전작업 models.py 에 클래스를 만들어주자. # goologin.models.py from django.db import models class Blog(models.Model): text = models.TextField() image = models.ImageField(upload_to = "blogimg") 장고한테 알려줘야 하니, migrate해주자. $ python manage.py makemigrates $ python ma..