[코딩온] 장고 강좌 8
장고
기본 설치
18.04 버전
apt update
apt install python3
python3 --version
pip3 install django
python3 -m django
python3 -m django --version
django-admin startproject 강의명
apt install tree
tree -
-
앱 만들기
django-admin startapp members
tree . -
장고에 등록
vi startups/settings.py
INSTALLED_APPS 에 등록
ALLOWED_HOSTS를 설정 ['*'] 는 모든 IP -
네트워크 관리
man netstat
ps -ef
앱등록하기
- 프로젝트 url에 등록
from django.urls import path,include
urlpatterns=[
디폴트 아래의 members의 urls를 참조하겠다.
path('',include('members.urls')),
]
- 앱 urls에 views 등록
from django.urls import path
from . import views
urlpatterns=[
path('',views.index)
]
- 앱 view 만들기
vi 앱명/view.py
from django.http.response import HttpResponse
def index(request):
return HttpResponse("hello")
웹브라우저로 접속
u->v->m->v->t
uvmvt
템플릿 등록하기
-
템플릿 만들기
mkdir members/templates
cd members/templates
echo "I am groot" >> index.html
-
views 에 등록
vi views.py
def signup()
- urls.py 에 등록
html 만들기
서버에서 돌려보자
csrf(Cross Site Request Forgery Protection) 오류 : 다른 사이트에서 보내는 요청이 있을 수 있기에 이것을 받으면 안된다. 그래서 우리 사이트만의 키를 가지고 이를 막는다.
이를 위해서 form 태그 아래에 {% csrf_token %}를 삽입하자
POST 방식을 연습하기 위해 이번에는 views.py 도 수정하자
index.html 도 변경하자
이렇게 post 방식으로 보내서 내용이 바뀐 것을 확인할 수 있다.
model 다루기
모델은 DB와 ORM으로 통신하게 된다.
vi members/models.py
from django.db import models
class Members(models.Model):
username=models.CharField(max_length=64, verbose_name="사용자")
useremail=models.EmailField(max_length=128,verbose_name="이메일")
Members 테이블로 나올 예정이였지만 이렇게 테이블 이름을 바꿀 수 있다.
class Meta:
db_table="o2_users"
한다음
python3 manage.py makemigrations
으로 db에 올린다.
python3 manage.py migrate
db에 적용한다.
하면 이렇게 migrations가 있는 것을 확인할 수 있다.
그래서 migrations 내부에 있는 0001_initial.py를 확인해 보면
이와 같이 구성된 것을 확인할 수 있다.
이제는 db에 접속해 보자
sqlite3 db.sqlite3
나갈때는 .q
.schema o2_users
다시한번 모델을 수정하자
python3 manage.py makemigrations
하면 이렇게 기존 모델에 넣을지 않넣을지를 물어본다.
우리는 넣는다 1번을 골라주자
python3 manage.py migrate
이번에는 슈퍼유저를 만들자
python3 manage.py createsuperuser
또한 admin을 수정해서 유저를 추가하자
from django.contrib import admin
# Register your models here.
from .models import Members
# Register your models here.
class MembersAdmin(admin.ModelAdmin):
#list_display = ('username','useremail')
pass
우리가 만든 모델이 실제로 등록이 된다.
admin.site.register(Members, MembersAdmin)
그런데 이것도 마음에 안들어서 이름을 바꾸자
목록 이름도 바뀌었다.
db 다루기 2
이번에는 signup 페이지에서 입력한 내용이 db로 들어가도록 만들어 보자
먼저 index.html에서 email도 다룰 수 있게 만들자
views.py도 수정하자
등록해보면
사용자에 추가된 것을 확인할 수 있다.
한번더 views를 수정해서 정보 입력시 원래 페이지를 유지하도록 하자
이번에는 views와 html 모두 수정하자
참고로 vi 편집기 중에 다른 편집기를 띄울려면 :vs members/templates/index.html으로 띄우면 된다.
동적으로 만들기
이번에는 웹페이지가 보다 동적으로 보이도록 만들어 보자
settings.py 파일 안에 맨 아래쪽에 이렇게 적어주자
STATIC_URL = '/static/'
STATICFILES_DIRS = [
BASE_DIR / "static",
]
다시 static 폴더로 와서
curl 이미지 주소.jpg -o a.jpg
해서 주소창에 /static/a.jpg 를 치면 브라우저에 이미지가 뜬다
그래서 이걸 index.html에 넣어주면
이미지가 뜬 걸 확인할 수 있다.
Author And Source
이 문제에 관하여([코딩온] 장고 강좌 8), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@tonyhan18/sba-아카데미-장고-강좌-8저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)