
Master Python full stack development by building scalable web apps with Django, rest APIs, and secure authentication, from backend foundations to frontend integration and production deployment.
Download the course resources from the official GitHub repository by clicking code and downloading the zip file, unzip it, and access the complete material for sections 3 and beyond.
Explore full stack basics by defining frontend as interface development across web, iOS, Android, and desktop, and review cross-platform tools like Flutter, Swift, Kotlin, html, css, and javascript.
Send messages from the frontend to the backend by converting them to json, routing through api endpoints, and using verbs like get, post, put, patch, and delete with status codes.
Discover the server-side back end, its business logic and data storage, and how the front end, APIs, authentication, and authorization orchestrate data flow in apps like WhatsApp.
Build backend and frontend with Python, using APIs to connect server and client. Explore Python's simplicity, extensive libraries, frameworks, and an active community for data science, machine learning, and AI.
Learn to build APIs with Django Rest Framework on top of Django and PostgreSQL. Connect the back end to the database and expose data to the front end.
Set up your development environment for building full stack Django apps with Visual Studio Code, install Python, and add the coderunner extension for running code.
Explore how relational databases store, manage, and retrieve data using tables, entities, and keys. Understand how primary keys and foreign keys create relationships between clubs and players.
Learn about PostgreSQL, a free, open-source relational database management system (RDBMS), and why this course uses it for building Django apps with strong security and concurrency.
Download PostgreSQL from the official site, choose the installer for your platform (Windows, macOS, Linux), and install the latest 17.4 (or 16.8) on your laptop.
Install Postgres and Pgadmin on Mac or Windows, set up a server, create databases like Premier League and La Liga, and define clubs and players tables using SQL.
Learn how to create tables, insert and query data, and enforce constraints in a Postgres database, including primary keys, foreign keys, not null, and boolean fields like on loan.
Explore querying data with select statements to fetch all or specific columns from clubs, players, and contracts, and filter results using where conditions and simple comparisons.
Learn how to update and delete records in a database using SQL, including updating on loan, using where clauses, inserting and removing data, and dropping tables and databases.
Explore database relationships, from one-to-many and one-to-one to many-to-many, using foreign keys and associative tables. Learn normalization and how enrollment tables connect students and courses for scalable web apps.
Explore the Django web framework and its model-view-controller architecture, showing how models, views, and controllers manage data and support APIs with Django Rest Framework.
Set up a Python virtual environment, install Django, and create a Django project and an app with manage.py to run a development server.
Write a function-based Django view that returns an HTTP response, register it in the app's urls.py, include it in the project URLs, and access it at localhost:8000/first.
learn how to connect a django project to a postgresql database by configuring settings.py, installing psycopg2, creating a test database, and verifying a clean server startup with no tables yet.
Run the migrate command to create Django's default tables in PostgreSQL. See how migrate creates tables for installed apps like admin and auth in PostgreSQL without writing sql.
Create and activate Django models for a poll app, defining question and choice models, with fields and a foreign key, then migrate to generate pull_question and pull_choice tables.
Explore how to interact with Django models directly from the interactive shell, creating and querying questions, saving data, and using filters, get, and all to manipulate the database.
Explore how Django automatically generates an admin interface to manage models, register models in admin.py, and use a super user to securely edit questions and choices with a database backend.
Create and map additional Django views to routes using function based and class based views. Define url patterns in urls.py to connect index and detail pages for a poll app.
Learn how Django views read database records, order by publication date, and display the latest five questions in an HTTP response, using querysets, templates, and simple string conversion.
Build functional Django views by loading and rendering templates with the template loader, passing context data like latest questions to the template, and wiring urls to display dynamic html.
Learn to raise and handle a 404 not found in Django by fetching a single object with its primary key, and rendering a detail view with context.
Use the template system to render the detail view, display a question and its options by looping over question.choice_set.all, and align the template with the option field.
Learn to replace hard coded urls with dynamic Django template links by using the url tag and named routes to link to detail views, passing the question id.
Learn how to use namespaces to distinguish URL names across multiple Django apps, by declaring an app_name and prefixing paths in templates to avoid collisions.
Learn to build a minimal Django form to submit poll votes. The lecture covers models, views, templates, csrf protection, post handling, vote counting with f, and redirecting to results.
Build a Django results page that shows the question text, each option, and its vote count using get_object_or_404 and a results.html template in a Python full-stack app.
Replace repetitive function-based views with generic class-based views in Django, using list and detail views, get_queryset, template names, and as_view wiring in urls.
Learn to build full-stack web apps with Django, mastering API development with Django Rest Framework and dynamic front-ends via Django templates, HTML, CSS, JavaScript, and authentication and permissions.
Develop a growth-oriented developer mindset focused on problem solving, curiosity, and consistent practice; learn to break problems down, seek feedback, embrace mistakes, and collaborate to build Django apps.
Master programming by understanding syntax, not memorizing it; develop problem-solving, pattern recognition, and documentation fluency to build web apps with Django Rest Framework and flat using practice and reading docs.
Develop confidence by deepening understanding and clarity about why you write code. Embrace not knowing, master tools like git and debugging, read documentation, and build challenging projects.
Explore Django Rest Framework while building an examination API and a full-stack project; learn to design an entity-relationship diagram to model databases and plan backend frontend integration.
Design an entity-relationship diagram for an online examination project with eight entities—users, students, admins, courses, exams, exam questions, exam choices, scores—and show their connections.
Explore Django rest framework for building web APIs, featuring a web browsable API, authentication options including OAuth 1 and OAuth 2, and serialization/deserialization of orm models to json.
Set up a Django REST framework project from scratch, install Django and DRF in a virtual environment, and build a simple CBT exam API with course and exam models.
Register course and exam models in the admin panel and run migrations. Build serializers with rest framework to convert instances to JSON and back, including the foreign key.
Build a JSON-based web API with Django by creating models, migrations, and admin tools; learn to return JSON responses, explore manual serialization versus serializers, and set up endpoints.
Learn to use a serializer to convert Django model querysets to JSON, handle single and multiple objects with many, and return serialized data for course list and detail views.
Explore building a Django rest endpoint that handles get and post requests with serializers and validation, then extend to put and delete via the api view decorator and browsable api.
Learn to use Django Rest Framework's status module to return HTTP status codes such as 200 ok, 201 created, 204 no content, 400 bad request, and 404 not found.
Explore how to replace function-based views with DRF's APIView class to create course list and course detail endpoints, handling GET, POST, PUT, and DELETE with serializers and a browsable API.
Learn to enforce data integrity with field and class level validators in Django Rest Framework, using unique validator and unique together to ensure unique course codes and names.
Explore creating custom validators in Django, using function-based and field-level validators (validate_description, validate_code), to enforce description content and course code rules, and learn object-level validation.
defines how serializer fields validate, normalize, and convert data, detailing core arguments such as read_only, write_only, required, allow_null, and allow_blank, plus field types like boolean, character, date, and integer.
Explore building exam management with Django REST framework: switch exam title to a slug primary key, create list and detail views, and implement CRUD routes with nested course data.
Leverage the model serializer to automatically map serializer fields to Django model fields, generate validators, and provide default create and update methods, reducing boilerplate as compared to regular serializers.
Refine the exam question models for meaningful display, and build a Django DRF API with list/create and detail/update/delete views for exam questions, wiring URLs, and demonstrating end-to-end exam management.
Use serializer method field to add a custom field that counts choices per question via get_number_of_choices. Ensure a one-to-many exam-question relationship and run migrations to apply the changes.
Explore serializer relations for Django REST Framework, including one-to-one, foreign key, and many-to-many fields, and configure slug, primary key, string, and hyperlinked related fields with related names and prefetching.
Explore nested serializers in a project by using a serializer inside another serializer to display related data. Decide when to add or remove nested serializers in the endpoint.
Explore how hyperlinked model serializer represents relationships using hyperlinks instead of primary keys. Apply the same usage as a model serializer and remember to pass context when initializing the serializer.
Explore how generic API views and mixins let you build Django Rest Framework endpoints faster, replacing function-based and API views with concise list and create patterns, using serializers and querysets.
Explore concrete view classes in rest framework, using create API view, list API view, and retrieve update destroy API view to replace mixins and reduce boilerplate.
Learn to override a Django queryset to fetch exam choices for a specific question by filtering on the question id, replacing all with a focused query in exam choice view.
Master viewsets and model viewsets in Django Rest Framework to handle list, retrieve, create, update, and destroy with a single router-driven API route.
Identify how authentication identifies the user sending a request and determines access to resources through endpoints, using credentials like username and password to validate users.
Explore authentication in Django rest framework by identifying requests with credentials and using basic, token, and jwt methods; learn how authentication governs permissions and drf uses authentication schemes in settings.
Create the accounts application in a Django project, register it in installed apps, and prepare to build views and serializers for users, admins, and students.
Customize Django authentication by creating a custom user model and 1-to-1 student and admin profiles, using abstract user concepts and running makemigrations and migrate.
Resolve Django migration conflicts by switching the auth user model to Stanford user. Apply migrations and establish the exam–admin foreign key with cascade delete.
Create serializers in a serializers folder, including user, admin, student, login, and signup serializers, with user and student as nested model serializers and login/signup as regular serializers using Django authentication.
Refactor and test the project by fixing serializer models, adding model attributes, and validating signup and login with authentication and active user checks.
Authenticate who sends a request, authorize what permissions they have, and illustrate limited access for staff, students, and parents to places like classrooms, offices, and the reception.
Learn basic authentication in Django REST framework and secure endpoints with global and view-level authentication settings. Understand how authentication and authorization work together, with permission classes guiding access.
Create account app views, including login, signup, and student and admin view sets, wired with serializers and a router. Implement signup via post and test in admin; token authentication next.
Enable token authentication in a Django Rest Framework project and issue tokens on login. Authenticate future requests by sending the token in the Authorization header.
Explore the account app authentication flow, including admin, student, and abstract user models and the signup process, and plans to merge user creation with role assignment in one route.
Improve the signup process by disabling post creation in admin and student view sets, and implementing a signup serializer with role fields to create admins or students.
Learn to test your Django REST API with Postman, switch to token authentication, manage headers and endpoints, and verify user roles (admin vs student) through signup, login, and protected requests.
Explore jwt authentication with django rest framework simple jwt, including obtaining and refreshing access tokens, configuring urls and settings, and using bearer tokens for secure api access.
Master how permissions in django rest framework control access by differentiating authentication from authorization, using permission classes, and enforcing object level permissions to protect model instances.
Set a default permission policy and override it at the view level with per-view permission classes; compose with bitwise operators; create custom, object-level permissions.
Throttling controls the rate of user requests based on authorization. It uses authentication to limit access and prevent overload, as seen with ads after a set number of songs.
Explore throttling in Django REST framework to limit requests, using built-in and custom throttle classes configured in settings.py for anonymous and user scopes and per-minute and per-day limits.
Create a Django app named results to manage scores and exam attempts, building three models—exam attempt, student answer, and results—with foreign keys to student, exam, and questions.
Create exam attempt, student answer, and results views and serializers in Django by making migrations, registering apps, and wiring routers and urls, then test via admin and routes.
Learn how to override the get query set method to filter endpoints by the current user and by URL query parameters in a REST framework app.
Learn to implement and customize filtering and searching in Django REST framework using DjangoFilterBackend and SearchFilter, including URL filtering, query parameter filtering, and global or per view configurations.
Learn how the ordering filter controls query set results and allows ordering by code or name, including combining with search and multiple fields.
Explore how pagination divides venue data into pages using limit offset and page size, enabling next and previous navigation for viewing large data in a Django Rest Framework API.
Explore page number and limit offset pagination in Django Rest Framework, and configure page size in settings.py. See how offsets and limits control which items appear on each page.
Explore why api documentation matters in backend development with Django and how clear endpoints, parameters, and authentication details guide frontend integration.
Use postman to generate documentation, test API endpoints, publish and share links, and organize collections into student and admin folders for Stanford Portal.
Learn how to document a Django REST framework API with drf-spectacular, install and configure it, generate a schema YAML, and view the docs via Swagger UI or Redux.
Explore the Flat framework for building cross-platform web, desktop, and mobile apps in Python with Flutter UI components, delivering a monolithic, single-page application.
Create and activate a virtual environment for the flat framework, install a pinned version (0.27.0), and run your first flat app with a counter interface.
Learn how to design page layouts in flat, using page controls, app bar and bottom navigation, and position views with vertical and horizontal alignments, containers, and the page's properties.
Master the Pagelet page layout to build a page within a page, using app bar, bottom bar, and navigation drawer, and customize with properties like background color and layout controls.
learn how a view is the top container in a single-page layout, shares properties with the column, how to add controls, set background color, and navigate between views using routes.
Learn how material design cards work, including rounding, elevation shadows, and margins, and how to compose a card with a single content child inside a container, color, and shadow properties.
Explore how to design page layouts using rows and columns as flex controls, arranging controls horizontally or vertically, with properties like expand, alignment, and auto scroll for responsive user interfaces.
Learn to arrange controls with column and row layouts in the Python fullstack mastery course, mastering alignment, spacing, wrap, height, and auto scroll to manage UI overflow.
Explore how responsiveness adapts a web app from mobile to laptop views, showing one product per row on small screens and three per row on large screens.
Discover how responsive rules implement a 12-column virtual grid inspired by Bootstrap, letting you control how many columns each control spans across breakpoints from extra small to extra large.
Explore how a container decorates a control with margins, padding, colors, borders, and events, and how a stack overlays controls to build features like online status avatars.
Explore how to build and customize tab navigation for modern web apps, including tabs and tab content, nesting tabs, and styling properties like animation duration, divider color, and indicator.
Explore how to implement and customize a ListView, a scrollable vertical or horizontal list, with items as text, buttons, or containers, and configure padding, spacing, dividers, and auto scroll.
Explore list tile components in this lecture, learning how fixed-height list styles use titles, leading and trailing icons, subtitles, and interactive controls like dense, selected, and popup menu buttons.
Master grid view, a two-dimensional scrollable array for thousands of items, and apply key properties like auto scroll, aspect ratio, spacing, padding, and horizontal layout.
Identify the stable flet release from PyPI and install version 0.28.3 to replace deprecated versions, resolving deprecation warnings and dependency conflicts.
Create a material design data table by defining data columns, data rows, and data cells with columns like state, school name, and location.
Learn to implement a dismissible control in a data table view with content, background, and secondary background, and configure dismiss direction, threshold, and dismissal events.
Build interactive user interfaces by implementing an expansion panel list with multiple expansion panels, customizing colors, padding, elevation, and content, and handling onchange events for expand and collapse.
Explore how the placeholder control marks future interface elements by drawing a box with content, color, fallback, and expand properties, and place it beside a data table in a row.
learn to implement a reorderable list view you can drag to reorder five colored containers, with height and width, while exploring horizontal layout and lazy on-demand controls.
This course is designed for developers who want to build fullstack web applications using only Python, without the complexity of JavaScript, HTML, or CSS. By leveraging Django for backend development, PostgreSQL for database management, and Flet for frontend design, you will learn how to create modern, scalable applications efficiently.
The course begins with Django, where you will learn to build dynamic web applications, implement authentication systems, and develop RESTful APIs. You will gain hands-on experience with Django's ORM, middleware, and security features. The database section covers PostgreSQL, teaching you how to design and optimize relational databases, write complex queries, and integrate them seamlessly with Django applications.
One of the most exciting aspects of this course is Flet, a powerful framework that allows you to build frontend applications directly in Python. Unlike traditional web development frameworks, Flet eliminates the need for JavaScript, HTML, or CSS while providing a fully interactive and visually appealing user interface. You will learn how to design responsive UIs, handle user interactions, and connect your frontend to a Django-powered backend.
Throughout the course, you will build real-world projects to reinforce your skills. You will learn best practices for API integration, user authentication, security, and deployment to cloud platforms. The course also covers software development methodologies, version control, and debugging techniques to prepare you for professional development environments.
By the end of this course, you will have the knowledge and confidence to build, deploy, and maintain fullstack web applications using Python. Whether you are a beginner looking to start a career in web development or an experienced developer seeking to expand your skill set, this course provides a comprehensive and practical approach to modern fullstack development.