Работа с СУБД

Задание

  1. Познакомьтесь с материалами блока 2.3 Работа с СУБД

  2. Пройдите тест


Тест

  1. Допустим вам нужно выбрать 1 статью с определенной категорией (не важно какую именно). Отметьте правильный (безопасный, эффективный, не создающий неожиданных исключений) способ сделать это:


A)

cursor.execute("select * from articles where category = " + category_id + " limit 1")

article = cursor.fetchall()[0]

 

B)

cursor.execute("select * from articles where category = %s", (category_id,))

article = cursor.fetchall()[0]

C)

cursor.execute("select * from articles where category = %s limit 1", (category_id,))

article = cursor.fetchone()


D)

cursor.execute("select * from articles where category = %s limit 1", (category_id,))

article = cursor.fetchmany(size=1)[0]

  1. Выберите правильные способы получить прямой доступ к базе данных default (база по-умолчанию) в Django

A)

from django.db import connection

connection.cursor().execute(...)

B)

from django.db import default

default.cursor().execute(...)

C)

from django.db import connections

connections['default'].cursor().execute(...)

D)

from django.db import connect

connect('default').cursor().execute(...)

  1. Перед вами определение модели Django:

class Post(object):                                      # 1
    title = models.CharField(max_length=255)             # 2
    content = models.TextField()                         # 3
    creation_date = models.DateTimeField(blank=True)     # 4
    def __unicode__(self):                               # 5
        return self.title()                              # 6
    def get_absolute_url(self):                          # 7
        return '/question/%d/' % self.pk                 # 8
    class Meta:                                          # 9
        db_table = 'qa__question'                        # 10
        ordering = ['-creation_date']                    # 11

Выберите строки, в которых есть ошибки.