본문 바로가기

Python36

Django - 회원가입 기능과 CSRF 토큰 signup의 html 수정 {% csrf_token %} ... ... {% csrf_token %}은 CSRF(Cross-site request forgery) 토큰을 생성한다. 이 토큰은 사용자가 요청을 보낼 때 마다 해당 토큰을 함께 제출하도록 요구함으로써 보안을 지켜주는 기능 method="post" > 회원가입 정보를 저장해야 하므로 post메소드 사용 action="/sign-up/" > 어떤 url로 전달할 것인지 *뒤에 /를 붙이지 않으면 오류가 난다. 회원가입용 view 함수 # user/views.py from django.shortcuts import render, redirect from .models import UserModel # .models에서 UserModel을 가져옴 .. 2023. 4. 4.
Django - 템플릿 상속과 URL연결, path() 함수 템플릿 상속 템플릿 문법 {% extends 'base.html' %} {% block title %} 로그인 {% endblock %} {% block content %} ... {% endblock %} 이렇게 {% %}의 형태로 이루어진 것들은 장고에서 말하는 템플릿 문법 html을 이어서 작성할 수 있게 해주고, html파일에 파이썬 기능들을 추가해 줄 수 있도록 도와주는 문법들 {% extends 'base.html' %}에서 base.html을 상속 받아서 사용하는데, {% block content %}와 {% endblock %} 사이에 있는 것들은 자식 템플릿에 있는 것을 사용하겠다는 의미 클래스에서 부모클래스의 메소드를 상속받은 뒤 자식클래스에서 오버라이딩하는 느낌 url - view -.. 2023. 4. 4.
Django - Models 만들기 Tweet 모델 만들기 (글 작성 기능) DB에 적용할 클래스 작성 # tweet/models.py from django.db import models from user.models import UserModel #user앱에 models중 이름이 UserModel인 것을 가져옴 # Create your models here. class TweetModel(models.Model): class Meta: db_table = "tweet" author = models.ForeignKey(UserModel, on_delete=models.CASCADE) # ForeignKey 내가 다른 데이터베이스에서 모델을 가져와서 넣어놓겠다는 뜻 content = models.CharField(max_length=256.. 2023. 4. 4.
Django - Admin기능 Admin 관리자 페이지를 직접 만들어주는 기능으로 db 수정 삭제 입력 등이 가능하다. http://127.0.0.1:8000/admin # Terminal에서 입력 python manage.py createsupersuser Username Email address Password Password (again) 의 값들을 input으로 넣으면 관리자 계정을 만들 수 있다. 유저모델 관리창에 등록하기 # user/admin.py from django.contrib import admin # 장고에서 admin툴을 사용 from .models import UserModel # .models에서 UserModel을 가져옴 # Register your models here. admin.site.registe.. 2023. 4. 4.
Django - DB연결과 ORM(Object Relational Mapping) DB연결하기 # settings.py DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', } } DATABASES라는 정보를 가지고 있는 데이터베이스와 자동 연결 db.sqlite3이 만들어졌다면 제대로 한 것이다. * VScode는 Extensions(Ctrl + shift + x)에서 SQLite Viewer를 설치해야 db.sqlite3 파일을 열어서 확인할 수 있다. ORM??? Object Relational Mapping은 데이터 베이스를 하나의 객체(Object)덩어리로 보고, 데이터베이스를 SQL언어가 아닌 클래스로 표현하고 사용할 수 있게 해준다. DB언어라고 하.. 2023. 4. 4.
Django - 장고 프로젝트 구조 이해하기 1주차 - Django의 구조와 명령어 Django의 MVT(Model Template View)패턴 M(model) - 데이터베이스의 모델로 저장도고 사용되는 데이터 형태 T(template) - 사용자에게 보여지는 부분 V(View) - 실질적으로 프로그램이 동작하는 부분 url요청 - 응답 사이에 일어나는 서비스들이 존재하는 곳 장고 프로젝트의 구조 외부 - 프로젝트의 컨테이너 내부 - 추가되는 모듈과 기능들을 관리(실제 파이썬 패키지) __init__.py - 현재 폴더가 파이썬 패키지임을 나타내주는 파일 asgi.py - 웹 서버와 Django, 어플리케이션을 비동기로 연결해 주는 Python의 표준 인터페이스 settings.py - 장고 전체의 setting을 설정, 관리하는 곳(중요) ur.. 2023. 4. 4.
자료에서 원하는 걸 초콜릿처럼 꺼내먹는 법 - 인덱싱, 슬라이싱, 관련 함수와 모듈 리스트, 튜플, 문자열 공통 ↓ 인덱싱, 슬라이싱 더보기 a[index] # 인덱스에 해당하는 값을 읽기 a[start:end:step] # 리스트의 일부를 읽기 # ex) [1:10:2] >> 1번째 인덱스부터 10번째 인덱스까지 2칸 간격으로 슬라이싱 예시) a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(a[0]) # 1 print(a[9]) # 10 # 기본적인 인덱싱. 인덱스에 해당하는 값을 읽기 print(a[-1]) # 10 print(a[-9]) # 2 # 인덱스가 음수일 경우 맨끝에서부터 -1, -2, -3 순서 print(a[:]) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(a[2:]) # [3, 4, 5, 6, 7, 8, 9, 1.. 2023. 3. 24.
자료를 장난감처럼 가지고 노는 법 - 리스트, 딕셔너리, 튜플, 집합 자료형 - 리스트, 튜플, 딕셔너리, 집합 리스트(list) 순서O, 중복된 값O, 여러가지 자료형O, 값 추가 삭제 가능 더보기 len()리스트의 길이 min() 리스트에서 최소값을 반환 max()리스트에서 최대값을 반환 sum()리스트의 모든 원소의 합을 반환 인덱싱과 슬라이싱 fruits = ["apple", "banana", "cherry", "date", "elderberry"] # 인덱싱(indexing) print(fruits[0]) # "apple" print(fruits[2]) # "cherry" print(fruits[-1]) # "elderberry" # 슬라이싱(slicing) print(fruits[1:3]) # ["banana", "cherry"] print(fruits[2:]).. 2023. 3. 23.
자료를 내 맘대로 저글링하는 법 - 숫자형, 문자열, 불리언 자료형 1 - 숫자형, 문자열, 불리언 숫자형 - 정수(int), 실수(float), 복소수(complex) 더보기 숫자형은 사칙연산이 가능하다. 덧셈( + ) 뺄셈( - ) 곱셈( * ) 나눗셈( / ) 나눗셈 - 몫( // ) 나눗셈 - 나머지( % ) 제곱( ** ) 비교 연산자도 사용 가능 같음( == ) 같지않음( != ) 크다( > ) 작다( = ) 작거나 같다( "water" 뺄셈( - ), 나눗셈( / )등은 TypeError가 나올 것이다. str과 str은 해당 연산을 수행할 수 없다. 문자열 반복( * ) "wa" * 3 > "wawawa" Bool 자료형 - True 또는 False 값 더보기 Boolean 자료형, 판별은 bool() 함수를 통해 가능. "".. 2023. 3. 23.