¡No hay problema! Hago esto todo el tiempo.
En cuanto a "no editar ni actualizar los datos", simplemente no agregue nada a su aplicación que actualice los datos. La sugerencia de Salem sobre el uso de permisos en el lado de MySQL también es una buena idea.
Para recuperar los datos, tiene dos opciones:
1) Puede crear modelos Django que correspondan a sus tablas en la base de datos MySQL. Puede hacerlo manualmente o puede usar el comando "inspectdb" con manage.py para tener un buen punto de partida. Luego haz algo como esto:
def myview(request):
rows = MyModel.objects.using('mysql').all()
return render_to_response("mytemplate.html", {"rows" : rows })
2) Puede administrar las conexiones y consultas manualmente dentro de su aplicación. Esto es perfectamente válido dentro de 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})
finalmente, Django está perfectamente feliz de usar MySQL como base de datos. Podría simplificar las cosas si su DBA le permite a Django crear sus tablas directamente en la misma base de datos.