Nessun problema! Lo faccio sempre.
Per quanto riguarda il "non modificare o aggiornare i dati", non aggiungere nulla alla tua app che aggiornerebbe i dati. Anche il suggerimento di Salem sull'utilizzo delle autorizzazioni lato MySQL è una buona idea.
Per recuperare i dati, hai due opzioni:
1) Puoi creare modelli Django che corrispondono alle tue tabelle nel database MySQL. Puoi farlo manualmente, oppure puoi usare il comando "inspectdb" con manage.py per darti un buon punto di partenza. Quindi fai qualcosa del genere:
def myview(request):
rows = MyModel.objects.using('mysql').all()
return render_to_response("mytemplate.html", {"rows" : rows })
2) Puoi gestire le connessioni e le query manualmente all'interno della tua app. Questo è perfettamente valido all'interno di una vista:
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})
infine -- Django è perfettamente felice di usare MySQL come database. Potrebbe semplificare le cose se il tuo DBA consente a Django di creare le sue tabelle direttamente nello stesso database.