
Build web applications quickly and effectively with Django and Python to solve real internet problems, and join the high-energy Try Django 1.11 series for beginners.
Explore a Django 1.11 project that understands URLs, displays user and restaurant items from a database, and supports search, custom registration with email activation, and built-in authentication.
Learn to start a django 1.11 project from scratch. Install django, set up a virtual environment, configure local and production settings, migrate the database, and run the development server.
Learn to track code evolution with git history, review projects on GitHub repositories, compare your changes against reference commits, and follow step-by-step guides for releasing on GitHub.
Django acts as the back-end engine that handles requests and returns responses, remembers user data, and organizes code into apps and projects, with function-based views and templates powering dynamic pages.
Explore how Django renders HTML by returning an HTML string from a view, inspect the page source, and use basic HTML tags and f-strings for dynamic content.
Learn to create a Django template by adding a templates folder, building base.html, and rendering it with Django's render function using a context dictionary to inject dynamic values.
Learn how Django template context works by using variables, conditionals, and for loops within templates. Discover template features like filters, verbatim blocks, and where to place logic in views.
Explore template inheritance in Django by creating multiple views, using base templates, extends, and blocks to share layout while applying the DRY principle.
Use the Django include template tag to split templates into reusable snippets, such as a nav bar and sidebar, and apply them across base, about, and contact pages.
Navigate to your project directory, activate the virtual environment with the activate script (use source ./venv/bin/activate or the Windows equivalent), then deactivate and reactivate as needed.
Explore Django class-based views to reduce repetition by rendering templates with context via a base view and a get method, and learn as_view integration with URLs.
Learn to replace function based views with Django template view class-based views, override get_context_data, and manage template names and context using super to pass defaults.
Create a restaurant model, run make migrations and migrate to store data in the database, then use the admin to manage and view saved entries.
Add a category field to the Django model, showing max_length and blank/null behavior, then run makemigrations and migrate. Explore date time fields and admin behavior with auto now and defaults.
Explore displaying saved data in Django by creating function-based and class-based list views, wiring templates, and using query sets and dot notation to render restaurant locations.
Learn how to use Django querysets to fetch, filter, update, and create data from the database, via the Python shell or code, with counts and existence checks.
Explore Django's generic list view to build dynamic restaurant lists, filtering a queryset by slug and search terms with contains and Q lookups, and customize templates.
Create a restaurant detail page that displays individual restaurant data from the database, including menu items, using Django's generic detail view with a primary key or id.
Explore how to implement a slug field and a unique slug generator in Django, using a utility function, random string generator, and migrations to ensure slugs are unique and readable.
Learn how to use Django signals to generate a unique slug before save with pre save and post save receivers. Connect receivers to models and prevent recursion.
Use slug fields with regex to create robust, user-friendly urls for restaurant pages, translating slug-based links into the Django views and ensuring each slug uniquely identifies a page.
Learn to retrieve a single item from the database in Django using query sets, filters, and get object or 404, with slug or primary key lookups.
Learn how to save data in Django with a custom restaurant create form and a function-based view, covering post versus get, and CSRF protection beyond the admin.
discover how Django forms validate input with is_valid, access cleaned_data, and display form errors, reducing duplication and replacing brittle post handling with built-in form validation.
Explore Django model forms for restaurant location, defining fields name, location, and category, and implement a create view with validation and redirect on success, and signals for customization.
Explore how Django validates forms and fields through built-in and custom validators, including clean_email and a custom category validator, plus handling non-field errors and integrating validators into form fields.
Learn to associate data to a specific user in Django using a foreign key, set an owner field, run migrations, and query user-owned restaurant locations.
Learn how to associate a form with the current user in a Django function-based view by using commit=False, setting form.instance.owner, and redirecting unauthenticated users.
Learn to associate user data with a class-based view by overriding form_valid, handling request.user authentication, and saving form data while ensuring the view is accessible only to logged-in users.
Learn to enforce login using a decorator and a mixin for both function-based and class-based views, configure redirects and a default login URL in settings.
Explore how Django's login view and authentication work, including the login required mixin, anonymous vs authenticated users, class-based login views, URL naming, and password reset integration.
Learn to use Django reverse to generate URLs dynamically and avoid hard coding, leveraging get_absolute_url, slug fields, and including app URLs with namespaces.
Learn to build a menu items app in Django by defining an item model linked to user and restaurant, with name, contents, public flag, time stamp fields, and admin integration.
Build Django class-based views for a menu item model: list, detail, create, and update views, customize get_queryset by the authenticated user, and wire in a model form and templates.
Limit form fields to the current user by passing form keyword args into create and update views, narrowing the restaurant queryset to the logged-in owner.
Personalize restaurants and menu items for each user by filtering to the logged-in owner, implement update and detail views, replace old function-based views, and enable editing from a profile page.
Build a public user profile view in Django by creating a profiles app and a detail view that displays a user’s restaurants and items, linked by username.
Convert the template to a Bootstrap 3 layout, replacing elements with divs and Bootstrap classes, using a row and thumbnail, then style title, location, and optional badges.
Learn to build a robust, user-specific search in Django 1.11 by adding a custom restaurant location manager, using q lookups, and filtering by owner to query names, categories, and items.
Implement a Django follow system by modeling a one-to-one user profile, many-to-many followers and following, with post save signals to auto create profiles, plus admin and migrations.
Implement a follow button and toggle on user profiles using a post endpoint, a profile follow toggle, and template forms, with authentication checks, is following logic, and followers management.
Show updates from followed users on the home feed by a Django view that filters items by followed IDs, orders by updated, limits to three, and requires login.
Explore building a Django register view with a custom user creation form and validation. See how set_password hashes passwords and how profile activation emails enable email verification with unique emails.
Learn how to implement activation keys in Django, generate a secure activation key, send activation emails, configure email settings, and build the activation flow with a view and URL reverse.
Bring your Django project live by deploying to Heroku for free, following the video and the GitHub code, and share your results in the YouTube discussion or comments.
Take on the final challenge: read uncommented code with new upgrades in the kit hub, deduce its function, and deepen your Django 1.11 and Python web development skills.
Python is one of the best programming languages in the planet. Why? For a few reasons:
Proven & Scalable: Python runs Instagram's backend. It also run's Pinterest's, NASA, Mozilla, and countless others. It scales.
Open-Source: Open source technology means **anyone** can change it. Literally anyone. Are you in New Zealand? Yup you can change the code. Are you in Argentina? Yup, go ahead change it. Open-source changes the game for everyone because we can all use it.
Internet of Things (IoT) and Raspberry PI Connected devices are coming in waves. The easiest way to connect to these devices is using the Raspberry Pi and writing code in Python. Python is versatile so it makes controlling real-world objects with Raspberry Pi simple.
Pushing the Bounds of Future Technology Python is leading the charge in artificial intelligence with things like OpenCV, TensorFlow, PyBrain, and many others.
Sooo... Python is cool but why is this called Try Django? What's Django?
***
Django will be the backbone for your projects.
***
If you work with Python, the chances are good you need internet-connected data that stored securely and is reliable. This is where Django comes in. Django is a web-framework that can handle all of your data and handle it better than any web framework out there.
Django is the #1 Web Framework for Python for a reason: it's easy enough for the beginners and yet powerful enough for the pros. Instagram uses Python by way of Django. So does Pinterest. And Nasa. And Mozilla. It may not be the only technology that they use but its... the backbone of them all.
If Python is the future behind underlying technology, Django will be it's close cousin and if you love Python, Django will soon become your friend.
Cheers!
Justin