Nie ma problemu! Robię to cały czas.
Jeśli chodzi o „nie edytuj ani nie aktualizuj danych”, po prostu nie dodawaj do aplikacji niczego, co mogłoby zaktualizować dane. Sugestia Salema dotycząca używania uprawnień po stronie MySQL jest również dobrym pomysłem.
Dostępne są dwie opcje pobierania danych:
1) Możesz tworzyć modele Django, które odpowiadają Twoim tabelom w bazie danych MySQL. Możesz to zrobić ręcznie lub użyć polecenia „inspectdb” z manage.py, aby uzyskać dobry punkt wyjścia. Następnie zrób coś takiego:
def myview(request):
rows = MyModel.objects.using('mysql').all()
return render_to_response("mytemplate.html", {"rows" : rows })
2) Możesz ręcznie zarządzać połączeniami i zapytaniami w swojej aplikacji. Jest to całkowicie ważne w widoku:
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})
wreszcie -- Django jest bardzo zadowolony z używania MySQL jako bazy danych. Może to uprościć, jeśli DBA pozwoli Django tworzyć swoje tabele bezpośrednio w tej samej bazie danych.