● 프로젝트 생성
: django-admin startproject 프로젝트명 을 통해서 프로젝트를 생성한다.
- 생성후에는 manage.py와 프로젝트가 생성된다.
● 앱 생성
: manage.py startapp 앱명 을 통해서 앱을 생성
앱에 필요한 파일들이 생성된다.
● Database 생성
: manage.py migrate 명령어를 통해서 생성
- db.sqlite3파일이 생성된다.
● Superuser 생성
: manage.py createsuperuser 명령어로 생성후 유저명, 이메일, 비밀번호, 등을 입력한다.
- 입력후 manage.py runserver를 통해서 웹서버 실행하면 기본설정인 8000 번 포트로 서버가 실행되는 것을 확인할 수 있다.
- localhost:8000/admin 으로 접속하면 관리자 페이지도 자동으로 만들어 준다...
● 앱 등록
: 기본적으로 프로젝트를 생성하게되면 앱이 프로젝트에 등록되어있지 않은 상태로 앱을 사용하기 위헤서 등록을 해야한다.
- settings.py 안에 INSTALLED_APPS안에 만들어놓은 앱을 등록해준다.
● models.py
: Django에서 직접 SQL문을 모르더라도 데이터 베이스로 접근할 수 있다.
- 해당 페이지에서 사용하고자 하는 데이터를 정의 한다.
class Article(models.Model):
name = models.CharField(max_length=50)
title = models.CharField(max_length=50)
contents = models.TextField()
url = models.URLField()
email = models.EmailField()
cdate = models.DateTimeField(auto_now_add=True)
- manage.py makemigrations 모델명 을 통해서 모델을 생성한다.
- manage.py migrate로 테이블 생성
● urls.py
: 사용자가 접근할 수 있는 url 주소를 설정
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^write/', write, name='write'), << views.py 안에 write함수를 호출
url(r'^list/', list, name='list'),
]
* /admin, /write의 url을 설정해논 상태이다.
● views.py
: urls.py 에서 설정한 경로를 입력하게 되면 views.py에서 해당되는 함수를 실행시켜 html파일을 호출한다.
from community.forms import *
def write(request):
if request.method == 'POST': # post 형태로 요청이 들어오는경우
form = Form(request.POST)
if form.is_valid(): # 입력한 form정보가 유효한지 확인
form.save() # 입력한 정보를 저장
else:
form = Form()
return render(request, 'write.html', {'form':form})
** forms.py에서 설정한 form을 넘기기 위해서 빨간 부분을 추가한다.
def list(request):
list = Article.objects.all() # models.py 에서설정한 Article에 대한 모든 정보를 가져오는 함수
return render(request, 'list.html',{'list':list})
● forms.py
: models.py에서 설정한 필드들을 자동으로 매핑하기 위해서 설정 해주는 파일
from django.forms import ModelForm
from community.models import *
class Form(ModelForm):
class Meta:
model = Article
fields=['name', 'title', 'contents', 'url', 'email']
** forms.py의 개념에 대해서 좀더 공부가 필요할 듯 하다.
● .html
1. form
views.py에서 넘겨받은 form정보를 html에서 적용할 수있다.
- {{form.as_p}} : p태그 형태로 form을 구성
- {{form.as_table}} : table태그 형태로 form을 구성
- {{form.as_ul}} : ul태그 형태로 form을 구성
등의 형태로 form을 구성할 수 있다.
* form태그에서 다양한 공격들이 발생하는데 이를 방지하기 위해서 Django에서는 CSRF 토큰을 발생시킨다.
html 코드에 {% csrf_token %} 추가
2. list
write와 마찬가지로 urls.py에 호출되는 주소를 입력해주고 views.py에 호출되는 함수를 설정한다.
{% for list in list %}
<li><a href="/view/{{list.id}}">{{list.title}}</a> | {{list.name}} | {{list.cdate|date:"D d M Y"}}</li>
{% endfor %}
for 문을 이용하여 리스트를 구성할 수 있다.
'python + Django' 카테고리의 다른 글
Mysql 연동하기 (0) | 2019.01.27 |
---|---|
mod_wsgi 설치(Django 설정하기_2) (0) | 2019.01.23 |
apache 설정 (Django 연동을 위한 준비) (0) | 2019.01.20 |
Templates, DB, admin (0) | 2019.01.20 |
Django 시작 !! (0) | 2019.01.16 |