U E D R , A S I H C RSS

django/Modifying Object

insert & update

SQL๋ฌธ—„œ๋Š” insert into values ตฌ๋ฌธ„ šฉ•ด ๋ ˆฝ”๋“œ๋ฅผ ‚ฝž…•˜ , update set where ตฌ๋ฌธ„ šฉ•ด ๋ ˆฝ”๋“œ๋ฅผ ˆ˜ ••œ‹ค. •˜ง€๋งŒ django๋Š” ด ๋‘˜„ •˜๋‚˜๋กœ ๋ณด  ๋ฐ„ฐ๋ฒ Šค— ๋ ˆฝ”๋“œ๋ฅผ ‚ฝž…•˜  ฐฑ‹ •˜๋Š” ž‘—…„, ๋ชจ๋ธ๋กœ ๋งŒ๋“  ฒด๋ฅผ  €žฅ(save)•˜๋Š” ฒƒœผ๋กœ ถ”ƒ™”–ˆ๋‹ค. ธฐ๋ณธ œผ๋กœ ๋ชจ๋ธด๋ž˜Šค๋Š” save๋ฉ”†Œ๋“œ๋ฅผ ฐ€„‹ค. ๋”ฐ๋„œ œ๋ฐœžฐ€ ž‘„•œ ๋ชจ๋ธ๋„ save๋ฉ”†Œ๋“œ๋ฅผ ฐ€ง€๋ฉฐ, ด๋Š” ˜ค๋ฒ„ด๋”ฉ •  ˆ˜ žˆ๋‹ค. •„๋ž˜ ˜ˆ—„œ ๋ณด๋“ฏด save ๋ฉ”†Œ๋“œ๋Š” ƒˆ๋กœ๋งŒ๋“  ˆฝ”๋“œ •„๋“œ˜ †„— ๋”ฐ๋„œ  ๋‹žˆ ‚ฝž…ณผ ฐฑ‹  ž‘—…„ ˆ˜–‰•œ‹ค.
class Employee(models.Model):
    name= models.CharField(maxlength=100)
    email= models.EmailField()
Employee ๋ชจ๋ธ— •ด๋‹•˜๋Š” ƒˆ๋กœšด ฒด๋ฅผ ๋งŒ๋“ค  save๋ฉ”†Œ๋“œ๋ฅผ šฉ•˜๋ฉด, ๋ฐ„ฐ๋ฒ Šค— ƒˆ๋กœšด ๋ ˆฝ”๋“œ๋ฅผ ‚ฝž…•˜ฑฐ๋‚˜, ธฐกด˜ ˆฝ”๋“œ๋ฅผ ฐฑ‹ •œ‹ค. ธฐกด— ‚ฝž…•˜ง€ •Š•˜ธฐ ๋•Œ๋ฌธ— ˜Œ save๋ฅผ ˜œ•˜๋ฉด ๋ ˆฝ”๋“œ๋ฅผ ‚ฝž…•˜ , ๋‹Œ ๋ฒˆ save๋ฅผ ˜œ•˜๋ฉด ๋ ˆฝ”๋“œ๋ฅผ ฐฑ‹ •œ‹ค. ๋ ˆฝ”๋“œ๋Š” ฒด๋กœ, ๋ ˆฝ”๋“œ˜ †„„ ฒด˜ ๋ฉค๋ฒ„ ๋ณ€ˆ˜๋กœ ธ‰•œ‹ค.
e= Employee(name='John', email='John@django.com')
e.save() # insert
e.name= 'jack'
e.save() # update
Screenshot-save.png
save๋ฉ”†Œ๋“œ๋Š” šฐ„  ˜„žฌ  €žฅ•˜ ค๋Š” ๋ ˆฝ”๋“œ˜ ฃผ‚ค๋ฅผ ฐ€ง€  ๋ฐ„ฐ๋ฒ Šค๋ฅผ ฒ€ƒ‰•˜—ฌ ๋ ˆฝ”๋“œ๋ฅผ ‚ฝž…•  ง€ ฐฑ‹ •  ง€ ฒฐ ••œ‹ค. ฃผ‚ค๋ฅผ šฉ•ธฐกด˜ ˆฝ”๋“œ๋ฅผ ฐพ€ ฒฝšฐ—๋Š” ๋‹ˆœžˆ ฐฑ‹ •œ‹ค. ฃผ‚ค๋ฅผ šฉ•ด ๋ ˆฝ”๋“œ๋ฅผ ฐพง€ ๋ชป•œ ฒฝšฐ—๋Š” ๋‹ˆœžˆ ‚ฝž…•œ‹ค. ๋งŒฃผ‚คฐ€ —†๋Š”๋ฐ ๋ ˆฝ”๋“œฐ€ žˆ๋Š” ฒฝšฐ—๋Š” ‚ฝž…•˜—ฌ๋„ ƒด€—†œผ๋ฏ€๋กœ ‚ฝž…•œ‹ค. ๋‹Œ€ save๋ฉ”†Œ๋“œ˜ ฃผš” ๋ถ„ธฐ „ ๋ณด—ฌฃผ  žˆ๋‹ค.
  def save(self):
        # First, try an UPDATE. If that doesn't update anything, do an INSERT.
        record_exists = True
        if pk_set:
            # Determine whether a record with the primary key already exists.
            cursor.execute("SELECT 1 FROM %s WHERE %s=%%s LIMIT 1" % \
            # If it does already exist, do an UPDATE.
            if cursor.fetchone():
                    cursor.execute("UPDATE %s SET %s WHERE %s=%%s" % \
            else:
                record_exists = False
        if not pk_set or not record_exists:
            if pk_set:
            # If the PK has been manually set, respect that.
            else:
                # Create a new record with defaults for everything.
                cursor.execute("INSERT INTO %s (%s) VALUES (%s)" %

delete

๋ฐ„ฐ๋ฒ Šค—„œ ˆฝ”๋“œ๋ฅผ ‚ญ œ•˜๋Š” ž‘—…€ Modelด๋ž˜Šค˜ delete๋ฉ”†Œ๋“œ๋กœ ถ”ƒ™”–ˆ๋‹ค. •˜ง€๋งŒ ๋‚ด๋ถ€—„œ ‹ œ๋กœ ˆฝ”๋“œ๋ฅผ ‚ญ œ•˜๋Š” ๋ฉ”†Œ๋“œ๋Š” delete_objectsด๋‹ค.8 delete_objects๋ฉ”†Œ๋“œ๋Š” ง€šฐ๋ ค๋Š” ๋ ˆฝ”๋“œ๋ฅผ ฐธกฐ•˜๋Š” ๋‹ค๋ฅธ …Œด๋ธ”˜ ˆฝ”๋“œนŒง€ •˜ ‚ญ œ•˜ฑฐ๋‚˜, ™ธ๋ž˜‚ค๋ฅผ NULLฐ’œผ๋กœ „ ••œ‹ค. ˜ˆ๋ฅผ ๋“ค–ด ๋‹Œ€ Risk…Œด๋ธ”—„œ •œ ˆฝ”๋“œ๋ฅผ ‚ญ œ•˜๋Š” ฒฝšฐ ด๋ฅผ ฐธกฐ•˜๋Š” Consequence, Control …Œด๋ธ”˜ ˆฝ”๋“œนŒง€ •˜ ‚ญ œ•˜๋Š”ง€๋ฅผ ๋ฌป๋Š” ‚ฌšฉž ™”๋ฉดด๋‹ค.
django_delete.jpg
----
django/Example
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:31:38
Processing time 0.0126 sec