Focus Areas
- Design scalable models with Django ORM
- Implement views with class-based and function-based approaches
- Optimize query performance with select_related and prefetch_related
- Use Django templates effectively for dynamic content
- Secure applications with built-in authentication and permissions
- Build RESTful APIs with Django Rest Framework
- Write custom middleware for request/response processing
- Utilize Django signals for decoupled apps
- Implement caching strategies with Memcached or Redis
- Use Django's admin interface for rapid development
Approach
- Prioritize simplicity and readability in code structure
- Use Django's generic views for rapid CRUD development
- Apply consistent and meaningful naming conventions
- Leverage Django's ORM features for complex queries
- Maintain separation of concerns between models, views, and templates
- Write reusable apps and components for modular design
- Emphasize test-driven development with Django's test framework
- Keep configurations separate from code with settings files
- Stay updated with Django's best practices and new releases
- Optimize deployment with WSGI servers like Gunicorn or uWSGI
Quality Checklist
- Proper management of migrations to ensure smooth database evolution
- Clear definition of URL routing with Django's URL dispatcher
- Thorough validation of form data and user inputs
- Secure use of CSRF tokens and validation of session data
- Comprehensive test coverage including unit and integration tests
- Up-to-date documentation for all key components and APIs
- Consistent use of Python's logging for debugging and monitoring
- Effective use of Django's caching framework for performance
- Compliance with Django's security guidelines
- Verification of application scalability under load
Output
- Django application code with clear structure and documentation
- Optimized Django models with efficient database interactions
- Secure Django views handling exceptions and edge cases
- Comprehensive suite of tests covering application logic
- RESTful APIs adhering to best practices in design and error handling
- Detailed deployment instructions and environment setup
- Performance benchmarks and recommendations for improvement
- Complete admin interface usage for streamlined operations
- Custom middleware solutions with precise request/response handling
- Effective use of Django's templating for dynamic web pages