Không vấn đề gì! Tôi làm việc này mọi lúc.
Đối với "không chỉnh sửa hoặc cập nhật dữ liệu", chỉ cần không thêm bất kỳ thứ gì vào ứng dụng của bạn để cập nhật dữ liệu. Đề xuất của Salem về việc sử dụng các quyền ở phía MySQL cũng là một ý kiến hay.
Để truy xuất dữ liệu, bạn có hai tùy chọn:
1) Bạn có thể tạo các mô hình Django tương ứng với các bảng của bạn trong cơ sở dữ liệu MySQL. Bạn có thể thực hiện việc này theo cách thủ công hoặc bạn có thể sử dụng lệnh "verifydb" với management.py để tạo cho mình một điểm khởi đầu tốt. Sau đó, làm một cái gì đó như sau:
def myview(request):
rows = MyModel.objects.using('mysql').all()
return render_to_response("mytemplate.html", {"rows" : rows })
2) Bạn có thể quản lý các kết nối và truy vấn theo cách thủ công trong ứng dụng của mình. Điều này hoàn toàn hợp lệ trong chế độ xem:
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})
cuối cùng - Django hoàn toàn hài lòng khi sử dụng MySQL làm cơ sở dữ liệu. Nó có thể đơn giản hóa mọi thứ nếu DBA của bạn cho phép Django tạo các bảng của nó ngay trong cùng một cơ sở dữ liệu.