cmd에서 경로 이동
python 버전 중요, 여기서 3.10사용
# 가상환경 시작
python -m venv web02
가상환경명
//폴더가 생성됨
cd web02
cd script
actibate.bat
#장고 설치
pip install django==3.2.9
특정버전 설치
제거
pip uninstall Django
//하이라이트된 부분은 강의자료
#장고 버전 확인
python
-> 파이썬 명령어 창에서 실행
import django
print(django.get_version())
#메인화면 띄우기
django-admin startproject myproject
프로젝트명
// django-admin startproject config .
// 생성되는 파일
python manage.py runserver
ref.. 현재 실습하는 것
// manage.py가 있는 폴더에서 실행
-> 웹브라우져에서 localhost:8000
ref.) 포트번호 변경시
python manage.py runserver 9090
포트변경
#슈퍼 user 생성 및 기본테이블 생성
1. admin 계정생성
py manage.py migrate
py manage.py createsuperuser
-> user name, email, pass 입력
-> admin/admin1
-> python manage.py runserver
-> 웹브라우져에서 localhost:8000/admin
#앱생성
가상모드 진입후
(Django2) D:\Django2\one>py manage.py startapp one1
앱이름
경로 설명
one1은 startapp을 설정함
one1에서
### view_1.py ###
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
return HttpResponse("1111111111111one hello, world")
__________________________________________________________________________
### urls.py ###
from django.urls import path
from . import views_1
urlpatterns = [
path('',views_1.index,name='index'),
]
__________________________________________________________________________
one (프로젝트 메인폴더)
### urls.py ###
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('one1/', include('one1.urls')),
path('admin/', admin.site.urls),
]
__________________________________________________________________________
실행시, 웹브라우저에서
경로이동
py manage.py runserver
db 서버에 접속
sqlite 접속
sqlite>.table
sqlite>select * from onememos_memo:
sqlite>UPDATE onememos_memo SET memo_text = '내용' WHEAR id=1:
참조 : 부트스태랩, getbootstrap
장고 html 연결
경로 설정이 중요함
1. Project(web_study) - web_study - settings.py에서
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'main',
'test1',
]
앱이름(main) 추가
2. Project(web_study) - app (main) - views.py
from django.shortcuts import render
# index.html 페이지를 부르는 index 함수
def index(request):
return render(request, 'main/index.html')
# blog.html 페이지를 부르는 blog 함수
def blog(request):
return render(request, 'main/blog.html')
3. Project(web_study) - app (main) - urls.py
from django.urls import path
from .views import *
app_name='main'
urlpatterns=[
path('',index),
path('blog/',blog),
]
url에 localhost:8000/main/blog <-- 이런씩으로 연결됨
4. Project(web_study) - web_study - urls.py
"""web_study URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/4.1/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path, include
import main.views
urlpatterns = [
path('admin/', admin.site.urls),
path( 'main/', include('main.urls') )
]
결과
web_study/main/models.py
from django.db import models
# Create your models here.
# 게시글(Post)엔 제목(postname), 내용(contents)이 존재합니다
class Post(models.Model):
postname = models.CharField(max_length=50)
contents = models.TextField()
출력
(pjt02) E:\django\pjt02\web_study>py manage.py makemigrations
Migrations for 'main':
main\migrations\0001_initial.py
- Create model Post
(pjt02) E:\django\pjt02\web_study>python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, main, sessions
Running migrations:
Applying main.0001_initial... OK
from django.contrib import admin
# 게시글(Post) Model을 불러옵니다
from .models import Post
# Register your models here.
# 관리자(admin)가 게시글(Post)에 접근 가능
admin.site.register(Post)
& python3 manage.py createsuperuser
web_study/main/models.py
from django.db import models
class Post(models.Model):
postname = models.CharField(max_length=50)
contents = models.TextField()
def __str__(self):
return self.postname
web_study/main/views.py
View
(blog
함수)가 Model
(Post
게시글)을 가져온다.
from django.shortcuts import render
from .models import Post
def index(request):
return render(request, 'main/index.html')
def blog(request):
postlist = Post.objects.all()
return render(request, 'main/blog.html', {'postlist':postlist})
web_study/main/templates/main/blog.html
Template
(index.html
)에 Model
(Post
게시글)을 붙여주자.
<html>
<head>
<title>Blog List</title>
</head>
<body>
<h1>게시판 페이지입니다</h1>
<table>
{% for list in postlist %}
<ul>
<li>{{list.postname}}</li>
<li>{{list.contents}}</li>
</ul>
{% endfor %}
</table>
</body>
</html>
위에 다 글을 쓰면 html에서 출력됨
댓글
댓글 쓰기