Tôi là một người tin tưởng về ý tưởng dị giáo về việc kết nối chặt chẽ giữa phụ trợ và giao diện người dùng: Tôi muốn có kiến thức hiện có về một phụ trợ được sử dụng tự động khi tạo giao diện người dùng. Ví dụ: nếu cột VARCHAR có tối đa 20 ký tự, thì GUI sẽ tự động hạn chế người dùng nhập hơn 20 ký tự trong trường biểu mẫu liên quan.Một khung ứng dụng web python cho khớp nối DB/GUI chặt chẽ?
Và tôi có sự phản đối mạnh mẽ đối với ORM muốn xác định bảng cơ sở dữ liệu của tôi hoặc dựa trên một số hack trong đó mỗi bảng cần có cột ID dạng số vì ORM.
Tôi đã xem xét một chút về khung cơ sở dữ liệu Python và tôi nghĩ rằng tôi có thể kết luận SQLAlchemy phù hợp nhất với tâm lý của tôi.
Bây giờ, tôi cần phải tìm một khung ứng dụng web phù hợp tự nhiên với SQLAlchemy (hoặc tương đương) và thậm chí với sự thèm ăn của tôi để ghép nối. Với "ứng dụng khuôn khổ web", ý tôi là các sản phẩm/dự án như Pyhons, Django, TurboGears, web2py vv
Ví dụ, nó lý tưởng nên có thể:
- tự động chọn một widget hình thức thích hợp cho dữ liệu nhập vào một cột nhất định nếu được yêu cầu làm như vậy; ví dụ: nếu cột có khóa ngoài với cột có 10 giá trị khác nhau, tiện ích con sẽ hiển thị 10 giá trị có thể có dưới dạng một menu thả xuống
- tự động tạo mã xác thực biểu mẫu javascript cung cấp phản hồi lỗi nhanh cho người dùng cuối chuỗi được tham gia vào một lĩnh vực mà sắp kết thúc trong một cột INTEGER, vv
- tự động tạo một widget lịch cho dữ liệu đó sẽ kết thúc trong một cột NGÀY
- gợi ý những hạn chế NOT NULL như javascript khiếu nại về dữ liệu trống hoặc khoảng trắng chỉ trong trường nhập có liên quan
- tạo javascript mã xác nhận mà phù hợp có liên quan (đơn giản) CHECK-chế
- làm cho nó dễ dàng để tránh SQL injection, bằng cách sử dụng báo cáo chuẩn bị và/hoặc xác nhận dữ liệu từ bên ngoài có nguồn gốc
- làm cho nó dễ dàng để tránh cross site scripting bằng cách tự động thoát khỏi chuỗi đi khi thích hợp
- làm việc sử dụng tên chế để tạo ra các thông báo lỗi phần nào thân thiện với người trong trường hợp một constrataint bị vi phạm
Tất cả điều này sẽ xảy ra động, do đó, điều chỉnh bảng được tự động phản ánh trên giao diện người dùng - có thể với cơ chế lưu vào bộ nhớ cache, để tất cả các mô hình nội tâm sẽ không giết hiệu suất. Nói cách khác, tôi không muốn lặp lại định nghĩa mô hình của mình trong một tệp XML (hoặc giống nhau) khi nó đã được xác định một cách cẩn thận trong cơ sở dữ liệu của tôi.
Có một khung như vậy tồn tại cho Python (hoặc cho bất kỳ ngôn ngữ nào, cho vấn đề đó) không? Nếu không: Một số khung ứng dụng web Python nào sẽ ít nhất trong cách nếu tôi tự thêm các phần của các tính năng trên?
Django có chơi độc đáo với SQLAlchemy không? Cuối cùng tôi đã nghe nói, chi nhánh Django + SA rất khan hiếm, và câu hỏi ban đầu được chỉ định SA là ORM của sự lựa chọn. –