본문 바로가기

TEAM STUDY/PYTHON

파이썬 웹 개발 입문 lv.2

728x90
반응형

블로그 기능을 사용할 수 있게 끔 한다.

python manage.py startapp blog

 

하위 폴더에 blog 라는 폴더가 생성이 되는데

 

git 에 업로드를 진행한다.

git add

git commit -m "blog app started"

git push

 

blog  폴더가 생성이 된다

 

사용하지 않는 파일을 'gitignore' 에 명시해준다

 

class 만들기 

from django.db import models
from django.contrib.auth.models import User


class Post(models.Model):
	
    # 블로그에서 제목을 의미 (최대30글자)
    title = models.TextField(max_length=30)
    
    # 글에 들어갈 내용
    content = models.TextField()
	
    # 언제 작성이 되었는지 (날짜형)
    created = models.DateTimeField()
    
    # 어떤 사용자가 작성을 했는지
    author = models.ForeignKey(User)

 

server 켜기

python manage.py runserver

 

django의 장점인 'admin' 페이지

http://127.0.0.1:8000/admin/

 

최상위 계층 유저 생성하기

C:\github\django_my_Web (main -> origin)                                                                      
(venv) λ python manage.py createsuperuser soobinjung                                                          
usage: manage.py createsuperuser [-h] [--username USERNAME] [--noinput] [--database DATABASE] [--email EMAIL] 
                                 [--version] [-v {0,1,2,3}] [--settings SETTINGS] [--pythonpath PYTHONPATH]   
                                 [--traceback] [--no-color] [--force-color] [--skip-checks]                   
manage.py createsuperuser: error: unrecognized arguments: soobinjung                                          
                                                                                                              
C:\github\django_my_Web (main -> origin)                                                                      
(venv) λ python manage.py createsuperuser                                                                     
Username: soobinjung                                                                                          
Email address: soobin@test.com                                                                                
Password:                                                                                                     
Password (again):                                                                                             
This password is too short. It must contain at least 8 characters.                                            
This password is too common.                                                                                  
This password is entirely numeric.                                                                            
Bypass password validation and create user anyway? [y/N]: y                                                   
Superuser created successfully.                                                                               

 

server 관리자 페이지에 들어가서 로그인을 진행하고 Users 를 클릭하면

python manage.py runserver

사용자 id들이 출력된다

사용자들에 대한 정보와 언제 사용 헀는지 등에 대한 정보들이 나와있다.

비밀번호가 생각이 안난다면 이 페이지에서 변경도 가능하다.

 

이 방법은 뭘 하는 명령어인지는 아직 모름

python manage.py makemigrations blog

 

my_site_pjt 하위 폴더에 존재하는 settings.py 파일에 INSRALLED_APPS 안에 'blog' 를 추가시켜 주어야 한다.

 

설정을 해주고 나니 잘 찾아가는 걸 볼 수가 있다.

 

유저가 탈퇴 했을 때 기존 데이터도 다 날려버리는 법

from django.db import models
from django.contrib.auth.models import User


class Post(models.Model):
    title = models.TextField(max_length=30)
    content = models.TextField()

    created = models.DateTimeField()
    author = models.ForeignKey(User, on_delete=True)

아까와 다르게 author 에 on_delete = True 가 추가 되었다.

 

 


 

근데 요기서 에러💡

위에처럼 변경 후에 아래처럼 입력하면

python manage.py makemigration blog

- 강의 

- 내꺼

응 어쩌라는 걸까 ??? 찾아보니까 버전 탓이라는거 같기도 하고 에러에서 말하는 manage.py는 건들지 않은 문서인데

구글링은 버전 탓이라는 의견도 있고

 

www.inflearn.com/questions/27946

 

TypeError : on_delete must be callable. - 인프런

질문 - TypeError : on_delete must be callable. 선생님 강사님 박사님.. 강의를 한번 쭉 듣고나서 컴퓨터 앞에 앉아서 따라하면서 만들어가는 중입니다. 만들어지는걸 보면서 따라하니까 너무 재밌네요.

www.inflearn.com

나랑 같은 에러를 찾았다. 역시 나만 그런게 아닌란게 위로가 된다.

author = models.ForeignKey(User, on_delete=models.CASCADE)

위에처럼 바꾸고 실행하니 아래처럼 에러가 떨어진다

C:\github\django_my_Web (main -> origin)                      
(venv) λ python manage.py makemigration blog                  
Unknown command: 'makemigration'. Did you mean makemigrations?
Type 'manage.py help' for usage.                              

manage.py help를 치니까 이렇게 되는데

응~ 내 버전을 확인해보자.

응~ 3.14 너무 최신이니, 그러니?

www.inflearn.com/questions/109873

 

' python manage.py makemigration blog ' 명령어 에러 - 인프런

질문 - ' python manage.py makemigration blog ' 명령어 에러 이런 오류 발생으로 인해서 찾아보니까예전답변에 버전 차이로 인해서이렇게 바꿔주라는 답변을 보고 했으나 이러면이런 오류만 발생을 합니

www.inflearn.com

친절한 답변 감사합니다 :)

바보 인증,, 스펠링을 틀리다니 휴ㅜ

정친 차리고 다시 시작하자 ㅜㅜ

 

드디어 같은 글귀 하나가 나왔다.. ♥

 


파일이 생성이 된다

 

장고로 인해서 파일을 수정하기 때문에 직접적으로 이 파일을 건들일 일이 없다.

 

 

 

 

 

 

 

 

 

 

 

 

 

admin.py 파일을 수정해 준다.

from django.contrib import admin
from .models import Post

admin.site.register(Post)

 

 

변경 사항을 반영을 해주고

python manage.py migrate

 

 

 

서버를 실행 시켜준다.

python manage.py runserver

 

 

전에는 존재하지 않았던 Posts 가 생성

 

 

ADD POST 클릭

 

 

각종 정보를 입력하고 SAVE

 

 

등록된 POST 확인

 

 

게시물 하나 더 작성

 

 

commit 작업

git add .
git commit -m "blog app -Post"
git push

 

 

 

git 에서 변경사항을 확인해보니 내가 직접적으로 건들인 소스코드는 없지만 Cmder에서 건들였던 작업들만으로도 많은 수정이 일어나고 있었다는 사실들에 대해 경이로웠다. 이것들 또한 프레임워크의 특성이려나

728x90
반응형

'TEAM STUDY > PYTHON' 카테고리의 다른 글

1부터 n 까지 정수의 합 구하기  (0) 2020.12.30
세 정수의 최대값 구하기  (0) 2020.12.30
파이썬 웹 개발 입문 lv.1  (0) 2020.12.22
크롤링 시작하기  (0) 2020.12.21
파이썬 기초 2  (0) 2020.12.21