
Django
- 홈페이지
The web framework for perfectionists with deadlines. (마감에 쫓기는 완벽주의자를 위한 웹 프레임워크)
간편하고 빠르지만 완성도마저 갖추었다고 한다.
진행하면서 느낀 점을 먼저 적는다면 정말 웹 서비스를 빨리 만들 수 있다.
[문제]
[가상 환경을 이용한 해결]
% cd ~
~ % mkdir venvs
~ % cd venvs
~/venvs % python3 -m venv 가상환경이름
~/venvs % cd 가상환경이름/bin
~/venvs/가상환경이름/bin % source activate
(가상환경이름) ~/venvs/bin %
성공
가상환경을 종료하기 위해서는 deactivate 명령을 실행하면 된다.
이제 (가상환경이름)이 붙어있으면 pip(핍)을 사용해 django나 모듈들을 다운받아 사용할 수 있고 이는 해당 가상환경에서만 사용할 수 있다.
가상환경에서 django를 다운 받았을 때 다른 가상환경에서는 사용할 수 없다는 뜻
django-damin startapp {app name}
을 실행하면 해당 app name으로 app을 추가할 수 있고
- my-project
- config
- ...
- ...
- app-name
- migrations
- ...
- ...
- ...
- ...
모양의 구조를 가진다.
# my-project/myapp/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index),
]
# my-project/config/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('myapp/', include('myapp.urls')),
]
위 처럼 사용하면 내가 개발하는 myapp의 url을 django project에 매핑해 사용할 수 있다.
models.CharField(max_length=200)
models.TextField()
models.DateTimeField()
models.xxxField()
...
models는 프로퍼티를 xxxfield로 지정하고 저장/읽기/수정 한다.
더많은 field()를 지원하며 여기 에서 확인할 수 있다.
INSTALLED_APPS = [
'pybo.apps.MyappConfig', # 추가
'django.contrib.admin',
'django.contrib.auth',
(... 생략 ...)
]
python manage.py makemigrations
명령을 실행하면 해당 model(entity) table을 생성, 수정하는 쿼리가 작성된 python file이 생성되고
python manage.py migrate
명령을 사용해 해당 파일을 읽어 자동읋 테이블을 수정 또는 삭제 한다.
class MyClassAdmin(admin.ModelAdmin):
search_fields['my_class_property']
admin.site.register(MyClass, MyClassAdmin)
다음편에 이어서 작성