создали модели;
написали к ним тесты;
написали CRUD-контроллеры на каждую модель (принять данные; подключится к БД через ORM; отрендерить json);
написали к ним тесты;
перешли к новому проекту;
class People(models.Model):
first_name = models.CharField("Имя", max_length=64)
last_name = models.CharField("Фамилия", max_length=64)
def __str__(self):
return '{} {}'.format(self.first_name, self.last_name)
class PeoplePresence(models.Model):
date = models.DateField()
people = models.ManyToManyField(People)
def __str__(self):
return '{} {}'.format(self.date, self.people.__str__())
>>> from jinja2 import Template
>>> template = Template("""
... <table style="border:2px black solid">
... <tr>
... {% for item in my_array %}
... <td>{{item}}</td>
... {% endfor %}
... </tr>
... </table>""")
>>> my_array = range(10)
>>> my_array
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print(template.render(my_array=my_array))
<table style="border:2px black solid">
<tr>
<td>0</td>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
<td>9</td>
</tr>
</table>
>>>
>>> def return_false1():
... print('run 1')
... return False
...
>>> def return_false2():
... print('run 2')
... return False
...
>>> def return_false3():
... print('run 3')
... return False
...
>>>
>>> if return_false1() and return_false2() and return_false3():
... print('I newer executed')
...
run 1
>>>
>>> l = ['S', 'p', 'j']
>>> for im in l:
... exec('{}=1'.format(im))
...
>>> S
1
>>> j
1
>>> S+p+j
3
>>> locals()
{'__builtins__': <module '__builtin__' (built-in)>,
'j': 1,
'l': ['S', 'p', 'j'],
'__package__': None,
'p': 1,
'S': 1,
'im': 'j',
'__name__': '__main__',
'__doc__': None
}
>>> l = ['S', 'p', 'j']
>>> for im in l:
... locals()[im] = 1
...
>>> S+p+j
3