Description
Who should attend
- System Administrators
- Network Engineers
- Software Developers
- Python Enthusiasts
Prerequisites
None, however, previous knowledge of HTTP protocol or some aspects of web development is helpful
Course Objectives
- Flow Control
- Lists and Tuples
- Working with Files
- Dictionaries and Sets
- Functions
- Errors and Exception Handling
- Using Modules
- Classes
- Django Architecture<
- Configuring a Project
- Adding an Application
- Login for Nothing and Admin for free<
- Basic Views (AKA Controllers and Templates)
- Querying the Models
- Working with Templates
- Forms
- Automated Testing
Follow On Courses
Outline: Python 204 – Python and Django (PDWAD)
Python Review
- Version Control with Git
- Lists
- Dictionaries
- Conditionals (if, elif, else)
- Loops (for and when)
- Functions
- Classes and Methods
- Using pip
- Whitespace
- Booleans and Relational Operators
- Error and Exception handling (try / except)
- Classes
Working with Data – JSON, YAML, CSV and Excel
- JSON RFC 7159
- JSON Formatting
- YAML intro
- YAML Formatting
- Python Libraries for decoding JSON, YAML and CSV
- Reading and Writing to Excel
- Dataframes and pandas
Web and RESTful APIs
- Creating an HTTP Client & Server with Python
- Introduction to REST
- RESTful API on Etcd keystore (Kubernetes distributed DB)
- Creating a Python client to interact with API endpoints
- API dev keys
- Secure password retrieval
- Tokens and APIs
- OAuth v2.0
API Design Practices
- RESTful Architecture
- Stubbing code with Swagger
- Describing Resource functionality (GET, POST, PUT, DELETE, etc.)
- Collections, resources, and URLs
- Using nouns, not verbs
- Understanding HTTP status codes
- Returning data
Building APIs with Django
- Sites and apps
- Shared configuration
- Django layout
- Lifecyclinga project
- Database integration
- Dev servers
Django Admins
- Setting up admins
- Running an admin site
- Customizing the admin interface
- Changing the admin index
Introducing Views (Controllers)
- What is a view
- Django HttpResponse
- URL route configuration
- get_object_or_404()
Django Templating & Jinja
- Templates
- Django Syntax
- Static files
- loading templates
- URL tagging
- template.render()
- Variable lookups
- comments
- Inheritance
- Filters
- Escaping HTML
- Custom filters
- Python and Jinja
Querying Models
- Query Set
- Field lookups
- Changing filters
- Slicing QuerySets
- Related fields
- Q objects
Forms
- Forms
- GET and POST
- Form class
- Process the form
- Widgets
- Validation
- Forms in templates
Containerizing the Deployment
- Docker containers
- Docker build
- Constructing Docker images
- Dockerfile
- Automating build processes
Database Integration
- Overview
- Connecting to Python
- Read / Write operations
- Other useful instructions
- SQL and non–SQL integration
- Reading and Writing to Databases with APIs
Testing
- How to make Django tests
- Test frameworks
- The test client