Mysql
 sql >> Base de données >  >> RDS >> Mysql

Extraction de données vers le modèle à partir d'une base de données externe avec Django

Aucun problème! Je fais ça tout le temps.

En ce qui concerne "ne pas modifier ou mettre à jour les données", n'ajoutez rien à votre application qui mettrait à jour les données. La suggestion de Salem concernant l'utilisation des autorisations côté MySQL est également une bonne idée.

Pour récupérer les données, vous avez deux options :

1) Vous pouvez créer des modèles Django qui correspondent à vos tables dans la base de données MySQL. Vous pouvez le faire manuellement ou vous pouvez utiliser la commande "inspectdb" avec manage.py pour vous donner un bon point de départ. Ensuite, faites quelque chose comme ceci :

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

2) Vous pouvez gérer les connexions et les requêtes manuellement dans votre application. Ceci est parfaitement valable au sein d'une vue :

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})

enfin -- Django est parfaitement heureux d'utiliser MySQL comme base de données. Cela pourrait simplifier les choses si votre DBA laissait Django créer ses tables directement dans la même base de données.