Course Overview
Geared for experienced web developers new to Python, Introduction to Full Stack Web Development with Python and Django is a five-day hands-on course that teaches students how to develop Web applications using the Django framework. Students will explore the basics of creating basic applications using the MVC (model-view-controller) design pattern, as well as more advanced topics such as administration, session management, authentication, and automated testing. This comprehensive, practical course provides an in-depth exploration of working with the programming language, not an academic overview of syntax and grammar. Students will immediately be able to use Python to complete tasks in the real world.
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