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.0124 sec