[210728 TIL] Django

Choi Rim·2021년 7월 28일
0

Django

목록 보기
16/21
post-thumbnail

데이터베이스 필드값이 null일 때 데이터 받아오는 방법

class User(models.Model):
    name       = models.CharField(max_length=45, null=True)
    email      = models.CharField(max_length=100)
    password   = models.CharField(max_length=200)
    mobile     = models.CharField(max_length=100, null=True)
    address    = models.CharField(max_length=100, null=True)
    birth_date = models.DateField(null=True)
  • 만약 email 과 password만 필수값이며 다른 필드값들은 null이라면 어떻게 데이터를 create해야 할까
User.objects.create(
        name       = data['name'],
        email      = data['email'],
        password   = hashed_password,
        mobile     = data['mobile'],
        address    = data['address'],
        birth_date = data['birth_date']
        )
  • 만약 null 값을 주지 않은 상태에서는 data[] 형태로 원하는 값을 불러온다. 왜냐하면 data값이 딕셔너리 형태이기 때문이다.
>>> d = {'key1':1, 'key2':2}
>>> d
{'key1': 1, 'key2': 2}
>>> d['key1']
1
  • 위처럼 딕셔너리명['키'] 형태로 키값을 불러온다.
>>> d['sssd']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'sssd'
  • 하지만 null값을 준 필드명이 존재하지 않는데 딕셔너리의 키로 키값을 호출하면 keyerror가 발생한다.
>>> d.get('sssd') 
>>> var = d.get('sssd')
>>> var = d.get('sssd',1)
  • 딕셔너리.get('키') 형태로 값을 가져오면 keyerror가 발생하지 않는다.
  • 만약 기본값을 지정해주고 싶다면 딕셔너리.get('키', 기본값) 형태로 지정해주면 된다.

정규식

+

  • 반복을 의미하며 문자열이 한 번 이상 반복되는 것을 의미함

*

  • 0 또는 그 이상의 문자가 연속될 수 있음을 말함
profile
https://rimi0108.github.io/

0개의 댓글