내일배움캠프AI - 파이썬 장고 실무 기초 1, 2주차 개발일지

Dongwoo Kim·2022년 5월 30일
0

스파르타코딩클럽

내일배움캠프AI 웹개발자양성과정 2회차

파이썬 장고 실무 기초 1, 2주차 개발일지

1. Django vs Flask

참고 : https://dingrr.com/blog/post/언제-django를-언제-flask를-사용해야-할까

2. MVT

  • Model : 데이터베이스의 모델, 정의하는 부분 (ORM)
  • View : 실질적인 프로그램 기능, 동작하는 부분
  • Template : 사용자에게 보여지는 부분

ORM이란?

  • ORM (Object-Relational Mapping) : 객체(object)와 관계형(relational) 데이터베이스를 연결(mapping)시켜주는 프로그래밍 기술
  • 프로그래밍언어로 쿼리문을 대신 수행해 줄 수 있다.

3. 프로젝트 구조

4. App 추가하기

App : 기능별로 서비스를 나누는 단위

ex) 유저관련 기능, 게시글관련 기능

  • mySpartaSns 프로젝트에 user, tweet App 추가하기

    $ django-admin startapp user
    $ django-admin startapp tweet
  • setting.py에 App 추가

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'tweet',
        'user',
    ]

5. Model 만들기

  • user App 안에 Models.py 생성

    from django.db import models
    
    class UserModel(models.Model):
        class Meta:
            db_table = "my_user"
    
        username = models.CharField(max_length=20, null=False)
        password = models.CharField(max_length=256, null=False)
        bio = models.CharField(max_length=256, default='')
        created_at = models.DateTimeField(auto_now_add=True)
        updated_at = models.DateTimeField(auto_now=True)

  • 데이터베이스 변경을 알려주기

    python manage.py makemigrations 
  • 변경된 데이터베이스 적용하기

    python manage.py migrate 

6. admin 기능

  • 로컬 환경에서 admin 페이지 접속

    http://127.0.0.1:8000/admin

  • createsuperuser 계정 생성

    	python manage.py createsuperuser 

  • user App에 Model 등록하기

    from django.contrib import admin
    from .models import UserModel
    
    admin.site.register(UserModel)

7. url 추가

  • mySpartaSns/urls.py

    from django.contrib import admin
    from django.urls import path, include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('', include('user.urls'))
    ]
  • user/urls.py

    from django.urls import path
    from . import views
    
    urlpatterns = [
        path('sign-up/', views.sign_up_view, name='sign-up'),
        path('sign-in/', views.sign_in_view, name='sign-in'),
    ]
  • user/views.py

    from django.shortcuts import render
    
    def sign_up_view(request):
        return render(request, 'user/signup.html')
    
    def sign_in_view(request):
        return render(request, 'user/signin.html')
profile
kimphysicsman

0개의 댓글