2021. 7. 29. 03:00ㆍpython/Django
*커트롤 + 마우스 = 이동
url , urls.py 마지막에'/'안주면 못찾는다
-변수나 이름들은 'list'와 같은 program keyword들은 오류가 날수 있기 때문에 피해야 한다
static (정적): 고정된, 불변
dynamic (동적) : 유동적, 변경가능
setting
ALLOWED_HOSTS = ['localhost', '127.0.0.1'] 둘다 같은 뜻
TEMPLATES 'DIRS': [os.path.join(BASE_DIR,'templates')]
-경로를 병합하여 새 경로 생성
-templates 기본 위치 추가
-적은다음 전체폴더 안에 templates폴더를 만든다
-했갈릴수 있음으로 app폴더 - template - app폴더를 만들어 app template만 따로 이용
AUTH_PASSWORD_VALIDATORS =
-사용자 인증과 session처리
-장고가 제공해주는 User, Group table을 이용할 수 있어요!
static files = css, javascript, images
STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
-당연히 전체 폴더 밑에 static 파일을 만든다
-위 파일안에 css, image,js 파일을 만들어 쉽게 사용
-/static/ url이 떨어지면 STATICFILES_DIRS 에서 찾아라는 뜻
MEDIA_URL = '/media/'
MEDIA_ROOT = [os.path.join(BASE_DIR, 'media')]
-static과 같은 맥락이며 당연히 media파일을 만들어야 한다
-서버에 저장되는 동적파일들이 있을 수 있어요!(파일업로드기능)
model
models.DateTimeField(auto_now=True)-자동으로 날짜갱신
__str__ 은 관리자페이지에서 보여주는 기준
url
mainpage를 view작업 없이 바로 template를 사용할거야(url -> html 바로가기)
1.상단에 from django.views.generic.base import TemplateView
path('', TemplateView.as_view(template_name='index.html'), name='home'),
2. mainpage 특정 app에 포함되지 않기 때문에
바구니폴더 -template폴더 안에 index.html 생성
django.views.geveric.base import TemplateView
path(''. TemplateView.as.view(template_name='이름.html'), name='home')
-폼 (form) 사용자가 입력한 값을 바로db에 넣기 편한 작업
(0)app폴더 안에 forms.py 만들기
(1)상단에 django import forms
from .models import (사용할model class)
(2)클래스를 만든다 (class 이름 만들때 일반적으로 모델이름form)
class BoardForm(form.ModelForm):
(3)위(2)에서 만든 class 밑에 클래스를 만든다
class Meta:
model = (내가만들 form에 근원이 되는 class)
field = (화면에 보여질 colum)
-view에서 form사용하기
상단에 from . forms import BoardForm
def b_create(request):
board_form = BoardForm(request.POST)
return render(request, 'bbs/create.html', {
'board_form': board_form })
html에 form 처리 (feat boot strapt)
-form을 그냥 처리하면 일반 작은 상자가 나오게 된다
(1) terminal
pip install django-bootstrap4
(2)settings.py
INSTALLED_APPS - 'bootstrap4'
-pip upgrade랑은 무관
(3)html
상단에 {% load bootstrap4 %}
{% bootstrap_form 어쩌고 %}
{% bootstrap_form board_form %}
html jquery 사용하기
body
<script src="/static/js/menu_btn.js"></script>
바구니파일 - static - 자바파일
$(function(event) {
$('#new_post_btn').on('click',function(event) {
document.location.href = '/bbs/create/'
})
})
-같은 url 2가지 방식의 request
(1)<form>tag에 action을 적지 않는다면 현재 url로 request된다
(2)같은 패이지라도 request방식이 위와같다면 get과 post로 나뉜다
(3)views.py
def b_create(request):
if request.method == 'POST':
# 새글작성화면에서 새글 저장 버튼을 눌렀을 때 실행
# 사용자가 입력한 내용으로 데이터베이스에 입력을 해야 해요!
board_form = BoardForm(request.POST)
#입력받은 데이터를 가지고 넘어감
if board_form.is_valid():
# is_valid는 정상이냐
new_post = board_form.save(commit=False)
new_post.save()
return redirect('bbs:b_list')
# redirect는 재접속을 의미하며 사용시 상단 render 옆에 , redirect추가
else:
# 리스트화면에서 새글 작성 버튼을 눌렀을 때 실행
board_form = BoardForm()
#form 객체화 시키기
return render(request, 'bbs/create.html', {
'board_form': board_form
})
'python > Django' 카테고리의 다른 글
Django python 파일 실행 (0) | 2021.08.06 |
---|---|
open api xml형식 가져오기 (0) | 2021.08.05 |
base.html (베이스html) (0) | 2021.07.28 |
상대경로 절대경로 (0) | 2021.07.28 |
django 요약 (0) | 2021.07.28 |