Python, Django 명령어

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),
]
__________________________________________________________________________


실행시, 웹브라우저에서



경로이동 

cd script
actibate.bat
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


web_study/main/admin.py

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

# Create your models here.
# 게시글(Post)엔 제목(postname), 내용(contents)이 존재합니다
class Post(models.Model):
    postname = models.CharField(max_length=50)
    contents = models.TextField()

    # 게시글의 제목(postname)이 Post object 대신하기
    def __str__(self):
        return self.postname

web_study/main/views.py
View(blog 함수)가 Model(Post 게시글)을 가져온다.

from django.shortcuts import render
# View에 Model(Post 게시글) 가져오기
from .models import Post

# index.html 페이지를 부르는 index 함수
def index(request):
    return render(request, 'main/index.html')

# blog.html 페이지를 부르는 blog 함수
def blog(request):
    # 모든 Post를 가져와 postlist에 저장합니다
    postlist = Post.objects.all()
    # blog.html 페이지를 열 때, 모든 Post인 postlist도 같이 가져옵니다 
    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>
        <!-- 게시판(postlist)의 게시글(list)을 하나씩 보여줍니다 -->
        <!-- {%%} 내부엔 파이썬이 사용됩니다 -->
        <table>
        {% for list in postlist %}
            <ul>
                <li>{{list.postname}}</li>
                <li>{{list.contents}}</li>
            </ul>
        {% endfor %}
        </table>
    </body>
</html>

위에 다 글을 쓰면 html에서 출력됨








댓글

이 블로그의 인기 게시물

abaqus gpu 사용

Chat GPI 활용

장고 01 : html 연결