2.Django 앱만들기
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
2.Django 앱만들기
앱 만들기
저번에 만들었던 프로젝트에 앱을 만들도록하겠습니다.
./mange.py startapp blog cs
이 명령어를 입력해 blog라는 앱을 만들었습니다.
ls 명령어로 확인해보면 blog가 생긴것을 볼수있습니다.
blog 디렉토리 안에 들어가보면
admin.py apps.py __init__.py migrations models.py tests.py views.py
파일들이 있습니다.
admin 사이트
앱을 만들었으니 앱을 관리할수있는 admin사이트에 접속해보도록 하겠습니다.
./manage.py createsuperuser cs
위 명령어로 계정을 만듭니다.
./manage.py runserver cs
위 명령어로 서버를 열고
127.0.0.1:8000/admin 또는 아이피주소:포트번호/admin 으로 접속을 합니다.
아까 생성했던 계정을 입력합니다.
로그인이 잘됩니다. 혹시 로그인이 안된다면 ./manage.py createsuperuser로 다시 만들어보세요.
아까 blog디렉토리 안에 있던 models.py에 field를 만들어서 admin사이트에서 관리를 할수있습니다.
models.py
https://docs.djangoproject.com/es/1.9/ref/models/fields/#model-field-types < 링크에 들어가보면 여러가지 field를 볼수있습니다.
간단하게 하나만 넣어보도록 하겠습니다.
링크에 보시면 EmailField가 있는데 이걸 넣어보겠습니다.
sudo nano blog/models.py cs
models.py를 수정합니다.
models.py 에
class MYMODEL(models.Model):
email = models.EmailField(blank = False, max_length=50)
이런 내용을 추가했습니다.
우선 MYMODEL이라는 이름의 클래스를 만들고 email을 추가했습니다.
EmailField를 넣고 blank = False, max_length=50라는 내용을 안에 추가햇습니다.
blank = False는 빈칸을 허용하지 않는것이고
max_length=50은 최대 문자 길이가 50이라는 것입니다.
**class를 추가하는 방법은 아까 링크에 있습니다.**
이제 admin사이트에서 볼수있도록 admin.py를 수정하겠습니다.
sudo nano blog/admin.py cs
admin.py에 내용을 추가합니다.
from .models import MYMODEL
admin.site.register(MYMODEL)
models.py을 불러오고 그안의 내가 만들었던 클래스 MYMODEL을 임포트합니다.
admin.site.register(MYMODEL)로 등록을 합니다.
이제 admin사이트에 들어가 봅시다.
추가가 된것을 볼수있습니다.
**참고로 장고서버는 서버를 켜놓은 상태에서 파일을 수정하면 수정되었을때 자동으로 변경됩니다.
오류가 나면 바로 확인하고 수정하는데 시간이 매우 단축됩니다.**
Add 버튼을 눌러 추가합니다 . 빈칸인 상태로 save를 하니까 오류가 뜹니다.
아까 blank = False가 잘 적용된것을 볼수있습니다.
이번엔 이메일을 입력하고 save해봅시다.
오류가 나네요.
오류내용은 데이터베이스 테이블이 없어서 저장이 안되기 때문에 그런것 같습니다.
데이터 베이스를 설정합시다.
데이터베이스 설정
우선
/myproject/myproject/settings.py 파일을 수정해야합니다.
sudo nano myproject/settings.py cs
nano 편집기를 사용하여 settings.py 파일을 열면 이런 내용들이있습니다.
첫번째로 프로젝트에 이런 앱이있다고 알려줘야합니다.
밑으로 내려가면 이런 내용이있습니다.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
이 내용 맨밑에 'blog', 를 추가합니다.
두번째는
이 부분인데 기본 데이터베이스로 sqlite가 되있습니다.
개인용,공부 목적이라면 sqlite를 쓰는것을 추천합니다.
sqlite사용시 수정을 안하셔도됩니다.
하지만 다른 데이터베이스를 사용하시겠다면 수정해야합니다.
mysql 같은경우 다음과 같이 설정합니다.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '데이터베이스 이름',
'USER': 'mysql 계정',
'PASSWORD': 'mysql 계정의 비밀번호',
'HOST': '(빈칸으로 해도됨 빈칸일 경우 localhost)',
'POST': '(빈칸으로 해도됨 빈칸일 경우 3306)',
}
}
이렇게 수정하고 'NAME': '데이터베이스 이름', 여기서 설정한 데이터베이스 이름대로 mysql 에서 데이터베이스를 만들어줘야합니다.
저같은 경우에는 데이터베이스 이름을 blog로 했으니 mysql에 blog라는 데이터베이스를 추가하겠습니다.
**이름이 헷갈릴수있으니 데이터베이스 이름을 "blogdb" 이런 식으로 하시길 권장합니다.**
$ mysql -u root -p Enter password:******* mysql> create database blog; mysql> show databases; +--------------------+ Database | +--------------------+ information_schema | blog | mysql | performance_schema | +--------------------+ 5 rows in set (0.00 sec) mysql> cs
위와같이 데이터베이스를 생성합니다.
테이블 만들기
./manage.py makemigrations blog cs
위 명령어로 blog앱의 테이블을 만듭니다.
0001의 테이블이 만들어졌습니다.
./manage.py migrate cs
위 명령어로 테이블을 적용시킵니다.
모든게 잘 되었으면 다시 admin사이트에 가서 email을 추가해봅시다.
추가가 잘되었습니다.
앱을 만들고 기본 설정등 필요한것들을 다했습니다.
다음 글에는 좀더 깊이 들어가보도록 하겠습니다.
from http://mush-blog.tistory.com/4 by ccl(A) rewrite - 2020-03-07 06:20:57
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
댓글
댓글 쓰기