일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Jango
- HTML
- web
- 웹
- 크롤링
- 동아리
- Crawling
- scraping
- copy selector
- cmd
- 해커톤
- 파이썬
- 멋쟁이사자처럼
- 서류합격
- likelion
- 아기사자
- Django
- 9기
- 장고
- 이두희
- html.parser
- DBFIDDLE
- 멋사
- 코딩연합동아리
- 10기
- 백엔드
- 코딩
- 지원서
- Python
- 대외활동
- Today
- Total
olbiizl_.tistory.com
DJANGO 실습 (inflearn) 본문
인프런에서 들은 강의를 바탕으로 간단한 앱을
만들어보는 실습을 해보겠습니다
차근차근 따라오시면 아주 간단한 웹 + 앱을 만들 수 있을거에요 !

1. 실습할 폴더로 이동
cd [폴더 위치]
2. 프로젝트 생성
django-admin startproject [프로젝트명]
3. 프로젝트로 이동 후 프로젝트 안에 앱 생성
cd [프로젝트명]
manage.py startapp [앱 명]
4. 데이터 베이스 생성 (베이스 테이블 자동 생성)
manage.py migrate
5. 관리자(SUPERUSER) 생성
manage.py createsuperuser
6. 포트에서 서버 실행 -> 웹 서버가 실행됨
manage.py runserver
🎈 포트 번호를 변경하고 싶다면 manage.py runserver 8080
7. 관리자 페이지 들어가기
-> 해당 서버 주소에 /admin 붙이기
-> 관리자를 생성할 때 입력했던 username과 password로 접근 가능
8. Settings.py -> settings.py 에서 앱 설치
🙅♀️ 쉼표를 붙이는 습관을 들여야 함
Installed_APPS = {
...
'[앱 명]',
}
9. models.py 에 클래스 입력
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)
- models.py 은 기본적으로 클래스로 생성이 된다.
- class는 model을 상속하게 된다.
- cdate = 게시물을 생성하게 된 날짜와 시간
- auto_now_add=True -> 게시물이 생성이 될 때 자동으로 저장됨
10. 모델을 데이터 베이스에 생성한다.
manage.py makemigrations [앱 명]
-> model이 생성되었는지를 확인할 수 있다.
->아직 database에 적용은 되지 않은 상태
manage.py migrate
-> model에 대한 database테이블이 db.sqlite3 파일에 생성된 상태
11. 사용자들에게 전달할 url 생성 in urls.py (community : 앱 명)
from django.contrib import admin
from django.conf.urls import include, url
from community.views import *
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^write/', write, name='write'),
]
12. url.py에서 사용한 write 함수 정의 (in views.py)
community 폴더 안에 templates 폴더를 만든 후, 그 안에 write.html 파일 생성
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>write</title>
</head>
<body>
<form action"" method="post">
{{ form.as p }}
{{ % csrf_token % }}
<button type="submit" class="btn btn-primary">저장</button>
</form>
</body>
</html>
13. form 태그를 사용할 수 있는, ModelForm을 상속하는 Form함수 선언 (in community->forms.py)
from django.forms import ModelForm
from community.models import *
class Form(ModelForm):
class Meta:
model = Article
fields=['name', 'title', 'contents', 'url', 'email']
#사용할 필드명 모두 나열
14. form에서 받은 내용 데이터 베이스에 저장하기(by views.py)
from django.shortcuts import render
from community.forms import *
# Create your views here.
def write(request):
if request.method =='POST':
form = Form(request.POST)
if form.is_valid() :
form.save()
else:
form=Form()
return render(request, 'write.html', {'form':form})
15. list.html 생성
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>View</title>
</head>
<body>
제 목 : {{ article.title }}
<br>
저 자 : {{ article.name }}
<br>
내 용 : {{ article.contents }}
<br>
Email : {{ article.email }}
<br>
</body>
</html>
16. view.html 생성
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>View</title>
</head>
<body>
제 목 : {{ article.title }}
<br>
저 자 : {{ article.name }}
<br>
내 용 : {{ article.contents }}
<br>
Email : {{ article.email }}
<br>
</body>
</html>
17. 전달받은 데이터 list.html에 저장하고 view.html에서 보여주기
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>list</title>
</head>
<body>
<ul>
<li>제목 | 저자 | 날짜</li>
{% for article in articleList %}
<li><a href="/view/{{ article.id}}">{{ article.title }}</a> | {{ article.name }} | {{ article.cdate|date: "D d M Y" }}</li>
{% endfor %}
</ul>
</body>
</html>
18. list함수와 view함수 생성 in views.py
from django.shortcuts import render
from community.forms import *
# Create your views here.
def write(request):
if request.method =='POST':
form = Form(request.POST)
if form.is_valid() :
form.save()
else:
form=Form()
return render(request, 'write.html', {'form':form})
def list(request):
articleList = Article.objects.all()
return render(request, 'list.html', {'articleList':articleList})
def view(request, num="1"):
article = Article.objects.get(id=num)
return render(request, 'view.html', {'article':article})
19. 사용자에게 보여줄 url 생성
from django.conf.urls import include, url
from django.contrib import admin
from community.views import *
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^write/', write, name='write'),
url(r'^list/', list, name='list'),
url(r'^view/(?P<num>[0-9]+)/$', view),
]
'DJANGO' 카테고리의 다른 글
DJANGO 개념 (inflearn) (0) | 2021.09.30 |
---|