По вопросам относительно использования образцового класса от веб-платформы Django.
Центральным элементом Django объектно-реляционная схема отображения является Модель. Модель является единственным, категорическим источником информации о Ваших данных. Это содержит существенные поля и поведения данных, которые Вы храните. Обычно каждая модель отображается на таблицу единой базы данных, способом который главным образом отделяется от определенных для поставщика деталей реализации выбранной базы данных.
Основы:
django.db.models.Model
.Django пропитывает модели с автоматически сгенерированным доступом к базе данных API, который в большинстве случаев позволяет данным быть полученными доступ и измененными в парадигме Pythonic, в противоположность записи необработанного SQL.
Изменение формата Ваших моделей (то есть, изменение полей Ваших моделей или добавление новых моделей, в противоположность добавлению или изменению образцовых экземпляров) известны как миграция схемы.
В дополнение к определению реляционной схемы Ваших данных общепринятая практика для кодирования приложений Django состоит в том, чтобы включать бизнес-логику для запросов и действий с Вашими образцовыми объектами в Ваших образцовых классах (например, или операции уровня строки) и в связанных менеджерах (для класса - или операции уровня таблицы).
Существует "немой" вид способа получить данные из базы данных в представлении. Это просто: просто пользуйтесь любой существующей библиотекой Python, чтобы выполнить SQL-запрос и сделать что-то с результатами.
Это достигается при помощи MySQLdb, чтобы соединиться с базой данных MySQL, получить некоторые записи и подать их к шаблону для дисплея как Веб-страница:
from django.shortcuts import render import MySQLdb def book_list(request): db = MySQLdb.connect(user='me', db='mydb', passwd='secret', host='localhost') cursor = db.cursor() cursor.execute('SELECT name FROM books ORDER BY name') names = [row[0] for row in cursor.fetchall()] db.close() return render(request, 'book_list.html', {'names': names})
Этот подход работает, но некоторые проблемы должны сразу выскочить в Вас:
Как Вы могли бы ожидать, слой базы данных Django имеет целью решать эти проблемы. Вот предварительный просмотр того, как предыдущее представление может быть переписано с помощью базы данных API Django:
from django.shortcuts import render from mysite.books.models import Book def book_list(request): books = Book.objects.order_by('name') return render(request, 'book_list.html', {'books': books})
Ссылки: