Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Ziehen von Daten aus einer externen Datenbank mit Django in die Vorlage

Kein Problem! Ich mache das die ganze Zeit.

In Bezug auf „Daten nicht bearbeiten oder aktualisieren“ fügen Sie Ihrer App einfach nichts hinzu, das die Daten aktualisieren würde. Salems Vorschlag, Berechtigungen auf der MySQL-Seite zu verwenden, ist ebenfalls eine gute Idee.

Zum Abrufen der Daten haben Sie zwei Möglichkeiten:

1) Sie können Django-Modelle erstellen, die Ihren Tabellen in der MySQL-Datenbank entsprechen. Sie können dies manuell tun oder den Befehl „inspectdb“ mit manage.py verwenden, um sich einen guten Ausgangspunkt zu verschaffen. Dann machen Sie so etwas:

def myview(request):
  rows = MyModel.objects.using('mysql').all()
  return render_to_response("mytemplate.html", {"rows" : rows })

2) Sie können die Verbindungen und Abfragen manuell in Ihrer App verwalten. Dies ist innerhalb einer Ansicht vollkommen gültig:

def myview(request):
  conn = MySQLdb.connect("connection info here")
  try:
    cursor = conn.cursor()
    cursor.execute("select * from mytable")
    rows = cursor.fetchall()
  finally:
    conn.close()

  return render_to_response("mytemplate.html", {"rows" : rows})

schließlich -- Django ist vollkommen zufrieden damit, MySQL als Datenbank zu verwenden. Es könnte die Dinge vereinfachen, wenn Ihr DBA Django seine Tabellen direkt in derselben Datenbank erstellen lässt.