본문 바로가기

python + Django

프로젝트 생성하기

● 프로젝트 생성

: 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})

* write에 대한 페이지 호출


● 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