A repository dedicated to exploring and implementing advanced Django concepts and features. This project demonstrates the use of modern tools, libraries, and techniques to build robust and efficient Django applications.
-
NinjaAPI Integration:
- High-performance API development with Django Ninja.
- Built-in support for data validation and OpenAPI documentation.
-
GraphQL:
- Implementation of GraphQL queries and mutations for efficient data retrieval.
-
Custom Middleware:
- Enhance request and response handling by creating and utilizing custom middleware.
-
Comprehensive CRUD Operations:
- Demonstrates CRUD functionality with Django Ninja and Django Rest Framework.
-
Branching for Focused Development:
django_ninja
branch: Contains implementations and examples focused solely on Django Ninja.
- Backend Framework: Django
- API Development: Django Ninja, GraphQL
- Documentation: Swagger/OpenAPI
- Database: PostgreSQL
- Other Tools: Docker, Git
django-advanced_topics/
│
├── core/
│ ├── models.py # Core database models
│ ├── serializers.py # Serializers for API integration
│ ├── views.py # Views for handling API requests
│ ├── urls.py # URL routing configuration
│
├── ninja/
│ ├── api.py # NinjaAPI setup and endpoints
│ ├── routers.py # Router configuration for NinjaAPI
│
├── graphql/
│ ├── schema.py # GraphQL schema definitions
│ ├── queries.py # GraphQL queries
│ ├── mutations.py # GraphQL mutations
│
├── middleware/
│ ├── custom_middleware.py # Custom middleware examples
│
├── Dockerfile # Docker configuration for containerized deployment
├── README.md # Project documentation
- Python 3.9+
- PostgreSQL
- Docker (optional, for containerized deployment)
-
Clone the Repository:
git clone https://github.com/Mohamed-Taha-Essa/django-advanced_topics.git cd django-advanced_topics
-
Install Dependencies:
pip install -r requirements.txt
-
Run Migrations:
python manage.py migrate
-
Start the Development Server:
python manage.py runserver
-
Access the API Documentation:
- NinjaAPI docs: http://127.0.0.1:8000/api/docs
main
: Contains the core implementation and features.django_ninja
: Dedicated branch for Django Ninja API examples and use cases.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch (
feature/your-feature-name
). - Commit your changes.
- Push to the branch.
- Open a pull request.
This project is licensed under the MIT License.
For any inquiries or feedback, please contact:
Mohamed Taha Essa
GitHub Profile