title
Python Django Crash Course

description
In this Django 2.x crash course we will build a polling app based off the one from the docs. We will look at apps, views, models, urls, the shell and more. Code: https://github.com/bradtraversy/pollster_django_crash Gist With Commands: https://gist.github.com/bradtraversy/06538da5924882b2cf30fa6310d505b1 Continuation of this app by adding charts - by Dennis Ivy https://www.youtube.com/watch?v=dPoGRYz-n5E Udemy Course Promo: https://www.udemy.com/python-django-dev-to-deployment/?couponCode=TRAVERSYMEDIA Sponsor: DevMountain Bootcamp https://goo.gl/6q0dEa 💖 Become a Patron: Show support & get perks! http://www.patreon.com/traversymedia Udemy Courses: https://www.traversymedia.com Follow Traversy Media: https://www.facebook.com/traversymedia https://www.twitter.com/traversymedia https://www.instagram.com/traversymedia

detail
{'title': 'Python Django Crash Course', 'heatmap': [{'end': 262.237, 'start': 213.464, 'weight': 1}, {'end': 2639.816, 'start': 2581.348, 'weight': 0.955}], 'summary': "The 'python django crash course' video covers transitioning from django v1 to v2, building a simplified polling app, setting up python and django, creating core project files, adding models, admin functionality, and choices to questions, implementing admin site registration and website customization, passing data to templates, creating detail and results views, and adding a landing page to a django website.", 'chapters': [{'end': 69.515, 'segs': [{'end': 69.515, 'src': 'embed', 'start': 25.849, 'weight': 0, 'content': [{'end': 28.99, 'text': 'so I did a crash course on Django about two years ago,', 'start': 25.849, 'duration': 3.141}, {'end': 36.674, 'text': "but it was version one of the framework and we've been in version two for a while now and I've gotten a lot of requests to to redo this.", 'start': 28.99, 'duration': 7.684}, {'end': 38.936, 'text': "so we're gonna build an entirely new application.", 'start': 36.674, 'duration': 2.262}, {'end': 46.86, 'text': "we're gonna build a polling app that is similar to the one that's in the documentation here at Django project comm.", 'start': 38.936, 'duration': 7.924}, {'end': 48.421, 'text': "so there's a tutorial.", 'start': 46.86, 'duration': 1.561}, {'end': 52.083, 'text': "if you go down here to, it's actually a seven part tutorial.", 'start': 48.421, 'duration': 3.662}, {'end': 60.169, 'text': "So what I'm gonna do is build something very similar to this, but really slim it down so that you can understand it better, because, as You can see,", 'start': 52.083, 'duration': 8.086}, {'end': 62.45, 'text': "there's just a ton here and this is just part one.", 'start': 60.169, 'duration': 2.281}, {'end': 65.732, 'text': "So then you go to part two and it's just it's a lot.", 'start': 62.45, 'duration': 3.282}, {'end': 69.515, 'text': "So I'm gonna try to simplify it and help you understand it better.", 'start': 65.732, 'duration': 3.783}], 'summary': 'Building a new polling app in django, simplifying the tutorial to aid better understanding.', 'duration': 43.666, 'max_score': 25.849, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU25849.jpg'}], 'start': 7.059, 'title': 'Django crash course', 'summary': 'Discusses the transition from version one to version two of the django framework and the plan to build a simplified polling app based on the tutorial to improve understanding for learners.', 'chapters': [{'end': 69.515, 'start': 7.059, 'title': 'Django crash course', 'summary': 'Discusses the django crash course, highlighting the transition from version one to version two of the framework and the plan to build a simplified polling app based on the django tutorial, aiming to improve understanding for learners.', 'duration': 62.456, 'highlights': ['The tutorial for the Django polling app consists of seven parts, and the speaker plans to build something similar but with a simplified approach for better comprehension.', 'Devmountain is sponsoring a 12-week design and development boot camp for web development, iOS, and UX design, aiming to secure full-time positions in the industry.']}], 'duration': 62.456, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU7059.jpg', 'highlights': ['Devmountain is sponsoring a 12-week design and development boot camp for web development, iOS, and UX design, aiming to secure full-time positions in the industry.', 'The tutorial for the Django polling app consists of seven parts, and the speaker plans to build something similar but with a simplified approach for better comprehension.']}, {'end': 447.523, 'segs': [{'end': 182.082, 'src': 'embed', 'start': 155.993, 'weight': 2, 'content': [{'end': 160.394, 'text': 'And that will show up in the front facing website just right here.', 'start': 155.993, 'duration': 4.401}, {'end': 161.174, 'text': 'All right.', 'start': 160.934, 'duration': 0.24}, {'end': 162.135, 'text': "So that's what we're building.", 'start': 161.194, 'duration': 0.941}, {'end': 163.575, 'text': "So let's get into it.", 'start': 162.315, 'duration': 1.26}, {'end': 167.337, 'text': "You're going to need to have Python three installed right now.", 'start': 163.615, 'duration': 3.722}, {'end': 171.338, 'text': 'You can see at Python dot org, the latest version is three point seven four.', 'start': 167.357, 'duration': 3.981}, {'end': 172.498, 'text': 'So just get that installed.', 'start': 171.378, 'duration': 1.12}, {'end': 173.599, 'text': "I'm not going to go over that.", 'start': 172.559, 'duration': 1.04}, {'end': 179.881, 'text': "And you can you can do this on Mac, Windows, Linux doesn't matter as long as you have Python installed.", 'start': 174.299, 'duration': 5.582}, {'end': 182.082, 'text': "And I'm going to open up this code.", 'start': 180.602, 'duration': 1.48}], 'summary': 'Building a website, requires python three, latest version is 3.7.4, can be installed on mac, windows, linux.', 'duration': 26.089, 'max_score': 155.993, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU155993.jpg'}, {'end': 262.237, 'src': 'heatmap', 'start': 193.548, 'weight': 0, 'content': [{'end': 198.813, 'text': "Now, once you install Python, you'll have PIP, which is the package manager for Python.", 'start': 193.548, 'duration': 5.265}, {'end': 205.037, 'text': "And you could do pip install Django like that, but that's going to install it globally on your system.", 'start': 199.853, 'duration': 5.184}, {'end': 206.659, 'text': "And you probably don't want to do that.", 'start': 205.098, 'duration': 1.561}, {'end': 212.904, 'text': 'You want to set up a virtual environment for each project that you create on your system and any Python project.', 'start': 206.719, 'duration': 6.185}, {'end': 216.006, 'text': "So we're going to use something called pipenv to do that.", 'start': 213.464, 'duration': 2.542}, {'end': 220.209, 'text': 'So what you want to do is pip install pip ENV.', 'start': 216.086, 'duration': 4.123}, {'end': 223.129, 'text': "OK, I already have installed, so I'm not going to run that.", 'start': 220.649, 'duration': 2.48}, {'end': 231.912, 'text': "But once you do that, you can just say pip ENV shell and that's going to create a virtual virtual environment.", 'start': 223.189, 'duration': 8.723}, {'end': 235.433, 'text': "So you can see it's going to be in this location right here.", 'start': 232.172, 'duration': 3.261}, {'end': 243.915, 'text': 'And then any packages we install, including Django, will go into this virtual environment rather than on our global system.', 'start': 235.453, 'duration': 8.462}, {'end': 249.181, 'text': 'And it also created a PIP file, which will list any packages that we install.', 'start': 244.635, 'duration': 4.546}, {'end': 255.248, 'text': "OK, so let's go ahead and clear this up and let's do PIP ENV install Django.", 'start': 249.541, 'duration': 5.707}, {'end': 262.237, 'text': 'OK, so this should install Django, which should show up here under packages.', 'start': 255.268, 'duration': 6.969}], 'summary': 'Use pipenv to create virtual environments for python projects, avoiding global installations.', 'duration': 41.885, 'max_score': 193.548, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU193548.jpg'}, {'end': 344.525, 'src': 'embed', 'start': 314.592, 'weight': 3, 'content': [{'end': 319.914, 'text': 'Now, before we look at that, I just want to explain the concept of a project and apps.', 'start': 314.592, 'duration': 5.322}, {'end': 325.976, 'text': 'So with Django, your project is your basically your overall website, your overall application.', 'start': 320.534, 'duration': 5.442}, {'end': 331.438, 'text': 'And then you have a concept of apps which you can have multiple apps within your project.', 'start': 327.177, 'duration': 4.261}, {'end': 332.977, 'text': 'Usually you do.', 'start': 332.376, 'duration': 0.601}, {'end': 335.699, 'text': "So let's say you have a blog, you'd have a blog app.", 'start': 333.097, 'duration': 2.602}, {'end': 339.221, 'text': "If you wanted an e-commerce shop, you'd probably have a shop app.", 'start': 336.199, 'duration': 3.022}, {'end': 344.525, 'text': "What we're going to have is a polls app and that's going to have everything to do with the polls and the choices.", 'start': 339.662, 'duration': 4.863}], 'summary': 'Django project consists of apps; e.g., blog, shop, and polls app for specific functionalities.', 'duration': 29.933, 'max_score': 314.592, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU314592.jpg'}], 'start': 69.675, 'title': 'Django web app development', 'summary': 'Covers building a django web app with a landing page, poll viewing, voting functionality, result display, admin area for user and poll management, and setting up python and django for web development, including installing python 3.7.4, setting up a virtual environment using pipenv, and creating a django project with apps for polls and static pages.', 'chapters': [{'end': 155.532, 'start': 69.675, 'title': 'Building a django web app', 'summary': 'Discusses building a django web app with a landing page, poll viewing, voting functionality, result display, admin area for user and poll management, and highlights the high-level functionality provided by django.', 'duration': 85.857, 'highlights': ['The chapter covers building a Django web app with functionality like a landing page, poll viewing, and voting, with options to view results and an admin area for user and poll management.', 'Django provides high-level functionality, allowing for the implementation of several features with minimal code, such as user and poll management, question editing, and choice addition/removal.']}, {'end': 447.523, 'start': 155.993, 'title': 'Setting up python and django for web development', 'summary': 'Covers setting up python and django for web development, including installing python 3.7.4, setting up a virtual environment using pipenv, and creating a django project with apps for polls and static pages.', 'duration': 291.53, 'highlights': ['The latest version of Python is 3.7.4, which can be installed from python.org.', 'Setting up a virtual environment using pipenv ensures that packages, including Django, are installed within the virtual environment for each project, rather than globally on the system.', "Creating a Django project involves using the command 'Django-admin startproject' and understanding the concept of a project and apps within Django.", "The 'settings.py' file in the Django project contains configurations for the database, installed apps, middleware, and other settings, with the default database being SQLite 3."]}], 'duration': 377.848, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU69675.jpg', 'highlights': ['The chapter covers building a Django web app with functionality like a landing page, poll viewing, and voting, with options to view results and an admin area for user and poll management.', 'Django provides high-level functionality, allowing for the implementation of several features with minimal code, such as user and poll management, question editing, and choice addition/removal.', 'Setting up a virtual environment using pipenv ensures that packages, including Django, are installed within the virtual environment for each project, rather than globally on the system.', "Creating a Django project involves using the command 'Django-admin startproject' and understanding the concept of a project and apps within Django.", 'The latest version of Python is 3.7.4, which can be installed from python.org.', "The 'settings.py' file in the Django project contains configurations for the database, installed apps, middleware, and other settings, with the default database being SQLite 3."]}, {'end': 708.982, 'segs': [{'end': 576.617, 'src': 'embed', 'start': 545.057, 'weight': 2, 'content': [{'end': 549, 'text': "and we can create our own migrations as well, which we're going to do in a little bit.", 'start': 545.057, 'duration': 3.943}, {'end': 554.784, 'text': "so if we visit this url, we're going to see the just the django landing page.", 'start': 549, 'duration': 5.784}, {'end': 559.848, 'text': "all right, so i'm going to go ahead and stop the server and let's run those migrations.", 'start': 554.784, 'duration': 5.064}, {'end': 566.732, 'text': 'so, as you can see right here, it just says we need to run manage.pi migrate.', 'start': 559.848, 'duration': 6.884}, {'end': 576.617, 'text': "so let's clear this up and let's say python, manage.pi migrate, And you can see everything went OK.", 'start': 566.732, 'duration': 9.885}], 'summary': 'Creating migrations and running them using django manage.py migrate command.', 'duration': 31.56, 'max_score': 545.057, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU545057.jpg'}, {'end': 644.723, 'src': 'embed', 'start': 617.378, 'weight': 1, 'content': [{'end': 621.783, 'text': "Okay, now whenever you create an app, it's going to come with a set of files, as you can see here.", 'start': 617.378, 'duration': 4.405}, {'end': 626.909, 'text': "So we have migrations, which is a folder for any migrations, and we're going to create one in a little bit.", 'start': 621.803, 'duration': 5.106}, {'end': 637.922, 'text': "And init.py and admin.py, so if we want to add polls or questions to the admin area, we need to add some code to this file, which we'll do later.", 'start': 627.55, 'duration': 10.372}, {'end': 644.723, 'text': "Apps.py, which has a class of polls config, which we're not going to touch.", 'start': 638.698, 'duration': 6.025}], 'summary': 'Creating an app generates files including migrations and admin.py for adding polls to the admin area.', 'duration': 27.345, 'max_score': 617.378, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU617378.jpg'}, {'end': 693.064, 'src': 'embed', 'start': 660.517, 'weight': 0, 'content': [{'end': 665.282, 'text': "And they're both going to be related to each other, because obviously questions need choices.", 'start': 660.517, 'duration': 4.765}, {'end': 672.907, 'text': "We have a test.py for running tests, which we're not going to get into in this video, and then views, which can render templates.", 'start': 666.082, 'duration': 6.825}, {'end': 681.313, 'text': 'Basically, we can connect views to URLs and we can either render a server side template or we can render JSON for creating,', 'start': 673.508, 'duration': 7.805}, {'end': 683.135, 'text': 'like a REST API or something like that.', 'start': 681.313, 'duration': 1.822}, {'end': 693.064, 'text': 'And by the way, I do have a series showing you how to create a pretty in-depth REST API with JWT authentication in Django.', 'start': 684.136, 'duration': 8.928}], 'summary': 'Django allows rendering server-side templates and json for creating a rest api, with a series on jwt authentication available.', 'duration': 32.547, 'max_score': 660.517, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU660517.jpg'}], 'start': 447.603, 'title': 'Django project setup and core files', 'summary': 'Covers the core files of a django project such as settings, urls.py, and wsgi file, emphasizing their roles. it also explains setting up a django server, creating a polls app, applying migrations, and connecting views to urls for rendering templates and rest apis.', 'chapters': [{'end': 498.001, 'start': 447.603, 'title': 'Django project core files', 'summary': 'Explains the core files of a django project, including the settings file, urls.py file for routing, and the wsgi file, while emphasizing the importance of these files and their roles in serving the application.', 'duration': 50.398, 'highlights': ['The chapter emphasizes the core files of a Django project, including the settings file, URLs.py file for routing, and the WSGI file.', 'Each app created, like the polls app, has its own URLs.py file for defining routes.', 'The WSGI file is responsible for serving the application and does not need to be modified.', "Before creating the polls app, it's recommended to run the server from the same folder as manage.py."]}, {'end': 708.982, 'start': 498.041, 'title': 'Setting up django server and creating first app', 'summary': 'Explains setting up a django server on a different port, applying migrations, creating a polls app with associated files, and connecting views to urls for rendering templates and rest apis.', 'duration': 210.941, 'highlights': ["The chapter explains setting up a Django server on a different port and applying migrations, with an example of running the server on port 8081 and applying migrations using 'manage.pi migrate'.", 'It details the creation of a polls app, including the associated files such as migrations, init.py, admin.py, apps.py, models, test.py, and views, and explains the purpose of each file.', 'It mentions the possibility of rendering templates or creating a REST API using views and includes references to additional resources, such as a series on creating a REST API with JWT authentication and a Django course on Udemy.', 'It briefly mentions the need for adding code to the admin.py file for adding polls or questions to the admin area, and the interrelation between the question and choice models in the database.']}], 'duration': 261.379, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU447603.jpg', 'highlights': ['The chapter emphasizes the core files of a Django project, including the settings file, URLs.py file for routing, and the WSGI file.', 'Each app created, like the polls app, has its own URLs.py file for defining routes.', "The chapter explains setting up a Django server on a different port and applying migrations, with an example of running the server on port 8081 and applying migrations using 'manage.pi migrate'.", 'It details the creation of a polls app, including the associated files such as migrations, init.py, admin.py, apps.py, models, test.py, and views, and explains the purpose of each file.']}, {'end': 1605.046, 'segs': [{'end': 1269.287, 'src': 'embed', 'start': 1204.758, 'weight': 1, 'content': [{'end': 1208.319, 'text': 'OK, once we do that, we can actually make queries.', 'start': 1204.758, 'duration': 3.561}, {'end': 1213.962, 'text': 'We can take the question model and we can do dot objects dot all.', 'start': 1208.359, 'duration': 5.603}, {'end': 1215.402, 'text': 'And this is all in the documentation.', 'start': 1213.982, 'duration': 1.42}, {'end': 1216.743, 'text': "It's all in the tutorial.", 'start': 1215.442, 'duration': 1.301}, {'end': 1221.685, 'text': 'If you want to use that as a supplement and you can see our query set is empty.', 'start': 1216.763, 'duration': 4.922}, {'end': 1225.447, 'text': "Right And of course, as we haven't entered, we haven't added any questions.", 'start': 1221.785, 'duration': 3.662}, {'end': 1229.315, 'text': "Um, so what I'm going to do is actually add a question.", 'start': 1226.753, 'duration': 2.562}, {'end': 1238.262, 'text': "I'm going to create a variable called Q, set it to question and then the field question text.", 'start': 1229.335, 'duration': 8.927}, {'end': 1254.557, 'text': "Okay Remember we have that char field and I'm going to set that to what is your Favorites Python framework framework framework.", 'start': 1238.282, 'duration': 16.275}, {'end': 1255.578, 'text': 'All right.', 'start': 1255.338, 'duration': 0.24}, {'end': 1257.139, 'text': "So that's the question text.", 'start': 1255.598, 'duration': 1.541}, {'end': 1269.287, 'text': "And then let's do the pub date and we'll set that to actually you know what we have to bring in the time zone package.", 'start': 1257.92, 'duration': 11.367}], 'summary': 'Adding a question to the model with a specific text and pub date.', 'duration': 64.529, 'max_score': 1204.758, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU1204758.jpg'}, {'end': 1613.529, 'src': 'embed', 'start': 1584.486, 'weight': 0, 'content': [{'end': 1589.77, 'text': "okay, it's just telling me my password sucks, but i'm gonna say yes, uh, we'll just bypass it.", 'start': 1584.486, 'duration': 5.284}, {'end': 1593.452, 'text': "i don't care, okay, so we should have an admin user.", 'start': 1589.77, 'duration': 3.682}, {'end': 1603.165, 'text': "so let's run our server with python manage dot pi, run server, which is going to run it on eight thousand.", 'start': 1593.452, 'duration': 9.713}, {'end': 1605.046, 'text': "So we'll go ahead and open that up.", 'start': 1603.185, 'duration': 1.861}, {'end': 1613.529, 'text': 'So we still have our landing page, but we should be able to go to slash admin and see this log in and go ahead and use the super user.', 'start': 1605.326, 'duration': 8.203}], 'summary': 'Bypassed weak password, set up admin user, ran server on port 8000, accessed admin page, and logged in as super user.', 'duration': 29.043, 'max_score': 1584.486, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU1584486.jpg'}], 'start': 709.062, 'title': 'Django models and database setup', 'summary': 'Covers adding models in django, creating classes for questions and choices, specifying fields, setting up python interpreter, database tables, creating migrations, adding data, and setting up the admin area, with a demonstration of manipulating data and creating an admin user.', 'chapters': [{'end': 963.998, 'start': 709.062, 'title': 'Django models tutorial', 'summary': 'Covers the process of adding models in django, including creating classes for questions and choices, specifying fields with specific data types and relationships, and defining display methods for admin area.', 'duration': 254.936, 'highlights': ['Defining classes for questions and choices, including specifying fields such as question_text, pub_date, choice_text, and votes. The tutorial explains the process of creating classes for questions and choices, with specific fields like question_text, pub_date, choice_text, and votes.', 'Explaining the process of creating a relationship between choices and questions through a foreign key, as well as defining the on delete option as models.cascade. The tutorial covers the creation of a relationship between choices and questions using a foreign key, and defining the on delete option as models.cascade.', "Demonstrating the use of 'define string' to specify the display format for questions and choices in the admin area. The tutorial demonstrates the use of 'define string' to specify the display format for questions and choices in the admin area."]}, {'end': 1605.046, 'start': 963.998, 'title': 'Setting up python interpreter and database tables', 'summary': 'Covers setting up the python interpreter and database tables, including creating migrations, adding data through the shell, and setting up the admin area, with a demonstration of manipulating data and creating an admin user.', 'duration': 641.048, 'highlights': ["Setting up the correct Python interpreter is crucial when working with VS Code, and can be done by selecting the interpreter using the command 'Control-Shift-P' or 'Command-Shift-P' and typing in 'Python' to ensure the correct interpreter is selected.", "Creating migrations for the models file is essential to set up the database tables, and can be done using the command 'Python manage.py make migrations polls', which generates a migration file to define the database table structure.", 'Manipulating data through the shell allows for inserting questions and making queries to interact with the models, as demonstrated by importing the models, creating a question, adding choices, and querying data within the shell environment.', "Setting up an admin user involves creating a superuser using the command 'Python manage.py createsuperuser', which prompts for the username, email address, and password to establish admin access to the application."]}], 'duration': 895.984, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU709062.jpg', 'highlights': ['Defining classes for questions and choices, including specifying fields such as question_text, pub_date, choice_text, and votes.', "Creating migrations for the models file is essential to set up the database tables, and can be done using the command 'Python manage.py make migrations polls', which generates a migration file to define the database table structure.", "Setting up an admin user involves creating a superuser using the command 'Python manage.py createsuperuser', which prompts for the username, email address, and password to establish admin access to the application.", "Demonstrating the use of 'define string' to specify the display format for questions and choices in the admin area."]}, {'end': 1923.277, 'segs': [{'end': 1631.004, 'src': 'embed', 'start': 1605.326, 'weight': 3, 'content': [{'end': 1613.529, 'text': 'So we still have our landing page, but we should be able to go to slash admin and see this log in and go ahead and use the super user.', 'start': 1605.326, 'duration': 8.203}, {'end': 1624.623, 'text': 'okay. so right out of the box we have this, this functionality here where we can create groups, we can manage our users,', 'start': 1616.741, 'duration': 7.882}, {'end': 1628.444, 'text': "we don't have to add any code for that, we can change our password.", 'start': 1624.623, 'duration': 3.821}, {'end': 1631.004, 'text': 'so pretty, pretty damn cool.', 'start': 1628.444, 'duration': 2.56}], 'summary': 'Landing page allows access to admin, functionality to create groups and manage users, change password.', 'duration': 25.678, 'max_score': 1605.326, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU1605326.jpg'}, {'end': 1727.864, 'src': 'embed', 'start': 1699.099, 'weight': 2, 'content': [{'end': 1701.96, 'text': "And let's save that and let's see what happens here.", 'start': 1699.099, 'duration': 2.861}, {'end': 1705.38, 'text': 'So if I reload, you can see we got polls.', 'start': 1702, 'duration': 3.38}, {'end': 1707.56, 'text': "So it's basically a polls app.", 'start': 1705.64, 'duration': 1.92}, {'end': 1712.141, 'text': 'If we look at questions, we have what is your favorite Python framework?', 'start': 1708.301, 'duration': 3.84}, {'end': 1718.522, 'text': 'So, basically, I mean we put this in the database through the shell, but of course we can see it in the admin area,', 'start': 1712.201, 'duration': 6.321}, {'end': 1720.943, 'text': "because it's it's all looking at the same place.", 'start': 1718.522, 'duration': 2.421}, {'end': 1727.864, 'text': "Now, if I click on it, we're just going to see the question text, right? There's there's no correlation here with the choices.", 'start': 1721.543, 'duration': 6.321}], 'summary': "A polls app with a 'favorite python framework' question is demonstrated, with data entered through the shell and visible in the admin area.", 'duration': 28.765, 'max_score': 1699.099, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU1699099.jpg'}, {'end': 1923.277, 'src': 'embed', 'start': 1827.534, 'weight': 0, 'content': [{'end': 1830.936, 'text': "And in here, we're going to open up some parentheses.", 'start': 1827.534, 'duration': 3.402}, {'end': 1835.358, 'text': "The first is going to be a name, which we don't need a name here, so I'm going to say none.", 'start': 1831.016, 'duration': 4.342}, {'end': 1841.66, 'text': 'And then we need an object or a dictionary in Python with fields.', 'start': 1836.298, 'duration': 5.362}, {'end': 1849.464, 'text': "And we're going to set that to some brackets with the question text.", 'start': 1843.181, 'duration': 6.283}, {'end': 1851.97, 'text': 'all right.', 'start': 1851.55, 'duration': 0.42}, {'end': 1856.094, 'text': 'and then after this parentheses right here we also want the date.', 'start': 1851.97, 'duration': 4.124}, {'end': 1872.567, 'text': "so i'm going to put in another set of parentheses and let's say date information as the name here and then same thing, fields, fields,", 'start': 1856.094, 'duration': 16.473}, {'end': 1883.574, 'text': "and let's do pub publish date or pub date and then we're also going to set, We can set a classes option.", 'start': 1872.567, 'duration': 11.007}, {'end': 1885.536, 'text': 'So classes.', 'start': 1884.615, 'duration': 0.921}, {'end': 1889.361, 'text': "And this is just how it's going to behave.", 'start': 1886.858, 'duration': 2.503}, {'end': 1891.083, 'text': "We're going to do collapse.", 'start': 1890.001, 'duration': 1.082}, {'end': 1896.99, 'text': 'Okay And then we just put right here another comma.', 'start': 1893.846, 'duration': 3.144}, {'end': 1900.814, 'text': 'Wait, is it here? Yeah.', 'start': 1899.032, 'duration': 1.782}, {'end': 1901.575, 'text': 'Another comma.', 'start': 1900.914, 'duration': 0.661}, {'end': 1907.547, 'text': 'The reason we have this this hanging comma here is because this is actually a tuple.', 'start': 1903.504, 'duration': 4.043}, {'end': 1911.289, 'text': 'This is the first element in the tuple.', 'start': 1908.087, 'duration': 3.202}, {'end': 1913.971, 'text': 'This is a second and we need to have a hanging comma.', 'start': 1911.349, 'duration': 2.622}, {'end': 1915.172, 'text': "It's just a Python thing.", 'start': 1913.991, 'duration': 1.181}, {'end': 1916.212, 'text': 'All right.', 'start': 1915.192, 'duration': 1.02}, {'end': 1923.277, 'text': "And then we're just simply going to set in lines to the choice in line class that we created above.", 'start': 1916.332, 'duration': 6.945}], 'summary': 'Creating a python dictionary with fields and settings for a tuple', 'duration': 95.743, 'max_score': 1827.534, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU1827534.jpg'}], 'start': 1605.326, 'title': 'Adding admin functionality and choices to questions', 'summary': 'Discusses adding admin functionality in django app, enabling creation of groups, user management, password changes, and registering question and choice models. it also explains adding choices to questions in the admin page using tabular inline, with specific examples and classes created.', 'chapters': [{'end': 1720.943, 'start': 1605.326, 'title': 'Adding admin functionality for question management', 'summary': 'Discusses adding admin functionality to manage questions in the django app, showcasing the ability to create groups, manage users, change passwords, and register question and choice models for admin functionality.', 'duration': 115.617, 'highlights': ['Adding admin functionality to manage questions in the Django app.', 'Showcasing the ability to create groups, manage users, and change passwords without additional coding.', 'Importing and registering question and choice models for admin functionality.', 'Displaying the added questions in the admin area, demonstrating the integration with the database.', 'The chapter discusses adding admin functionality to manage questions in the Django app, showcasing the ability to create groups, manage users, change passwords, and register question and choice models for admin functionality.']}, {'end': 1923.277, 'start': 1721.543, 'title': 'Adding choices to questions', 'summary': 'Explains how to add choices to questions in the admin page using tabular inline, with a specific example of creating two classes, choice inline and question, to extend the admin tabular inline and model admin, respectively.', 'duration': 201.734, 'highlights': ['The chapter explains the process of adding choices to questions in the admin page using tabular inline and creating two classes, choice inline and question, to extend the admin tabular inline and model admin, respectively. This process involves specifying the model and extra fields, as well as setting the field sets and specifying the behavior of the classes.', 'The instructor specifies the number of extra fields needed for the choice model to be three. The instructor sets the number of extra fields for the choice model to be three, indicating the specific quantity required for the task.', 'The chapter demonstrates the use of field sets, specifying the fields and their behavior within the classes. The chapter illustrates the use of field sets to define the fields and their behavior within the classes, including setting the classes option to control the behavior.']}], 'duration': 317.951, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU1605326.jpg', 'highlights': ['Showcasing the ability to create groups, manage users, and change passwords without additional coding.', 'Importing and registering question and choice models for admin functionality.', 'The chapter discusses adding admin functionality to manage questions in the Django app, showcasing the ability to create groups, manage users, change passwords, and register question and choice models for admin functionality.', 'The chapter explains the process of adding choices to questions in the admin page using tabular inline and creating two classes, choice inline and question, to extend the admin tabular inline and model admin, respectively.', 'The instructor specifies the number of extra fields needed for the choice model to be three.']}, {'end': 2766.177, 'segs': [{'end': 2639.816, 'src': 'heatmap', 'start': 2581.348, 'weight': 0.955, 'content': [{'end': 2589.275, 'text': 'Now here is where we want to output any content any any other templates that we want to display such as the index template.', 'start': 2581.348, 'duration': 7.927}, {'end': 2601.004, 'text': 'So to display that we put in our tags and we just say block content and and block.', 'start': 2589.995, 'duration': 11.009}, {'end': 2602.265, 'text': 'All right.', 'start': 2601.925, 'duration': 0.34}, {'end': 2606.248, 'text': "So we'll save that prettier just kind of messes with it a little bit.", 'start': 2602.325, 'duration': 3.923}, {'end': 2611.924, 'text': 'And then if we go back and reload Oh, wait a minute.', 'start': 2607.349, 'duration': 4.575}, {'end': 2613.205, 'text': "We didn't extend it.", 'start': 2612.344, 'duration': 0.861}, {'end': 2621.294, 'text': 'So we created the base HTML, but in the index HTML we actually have to extend it if we want to use it, which is good, because then you can have.', 'start': 2613.325, 'duration': 7.969}, {'end': 2624.798, 'text': 'you can have multiple base layouts if you want.', 'start': 2621.294, 'duration': 3.504}, {'end': 2627.061, 'text': 'So from here.', 'start': 2626.08, 'duration': 0.981}, {'end': 2635.432, 'text': "Let's put up at the top, put in some tags, and we're going to say extends.", 'start': 2629.967, 'duration': 5.465}, {'end': 2639.816, 'text': 'And this is similar to many other template languages.', 'start': 2637.154, 'duration': 2.662}], 'summary': 'Demonstration of using template tags and extending base html for multiple layouts.', 'duration': 58.468, 'max_score': 2581.348, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU2581348.jpg'}, {'end': 2674.21, 'src': 'embed', 'start': 2639.836, 'weight': 1, 'content': [{'end': 2645.841, 'text': "We're going to extend base.html and then put our content block.", 'start': 2639.836, 'duration': 6.005}, {'end': 2652.848, 'text': 'So block content and content.', 'start': 2647.943, 'duration': 4.905}, {'end': 2656.675, 'text': 'End block.', 'start': 2655.934, 'duration': 0.741}, {'end': 2661.299, 'text': "And in here, for now, I'll just say polls again.", 'start': 2658.196, 'duration': 3.103}, {'end': 2665.182, 'text': "I don't like how prettier messes with that.", 'start': 2661.319, 'duration': 3.863}, {'end': 2669.906, 'text': "You know what? I think I'm going to just, or it's not prettier itself.", 'start': 2666.343, 'duration': 3.563}, {'end': 2671.148, 'text': "It's format on save.", 'start': 2669.926, 'duration': 1.222}, {'end': 2672.909, 'text': "So I think I'm just going to shut that off.", 'start': 2671.168, 'duration': 1.741}, {'end': 2674.21, 'text': "I'm going to go to my settings.", 'start': 2673.049, 'duration': 1.161}], 'summary': 'Extending base.html, adding content block, and disabling format on save in settings.', 'duration': 34.374, 'max_score': 2639.836, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU2639836.jpg'}, {'end': 2766.177, 'src': 'embed', 'start': 2739.397, 'weight': 0, 'content': [{'end': 2744.742, 'text': 'Remember when we did like objects dot all objects dot get.', 'start': 2739.397, 'duration': 5.345}, {'end': 2745.923, 'text': 'We did that within the shell.', 'start': 2744.782, 'duration': 1.141}, {'end': 2751.748, 'text': 'We have the same structure, the same abstraction within this views file.', 'start': 2746.303, 'duration': 5.445}, {'end': 2753.149, 'text': 'So we can do dot all.', 'start': 2752.108, 'duration': 1.041}, {'end': 2755.17, 'text': "But I'm actually going to do dot order by.", 'start': 2753.189, 'duration': 1.981}, {'end': 2758.833, 'text': 'And you can look in the documentation for all the stuff you can do.', 'start': 2755.911, 'duration': 2.922}, {'end': 2761.014, 'text': "But I'm going to order by the date.", 'start': 2758.933, 'duration': 2.081}, {'end': 2762.815, 'text': 'So I want it descending.', 'start': 2761.074, 'duration': 1.741}, {'end': 2766.177, 'text': "So I'm going to do minus pub date.", 'start': 2762.835, 'duration': 3.342}], 'summary': 'Using dot order by to sort by date in the views file.', 'duration': 26.78, 'max_score': 2739.397, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU2739397.jpg'}], 'start': 1924.397, 'title': 'Admin site registration and website customization', 'summary': 'Demonstrates implementing admin site registration and manipulating voting functionality in django, achieving cool functionality with minimal code. it also covers customizing the site header, setting up the front facing website, changing the site title, creating views, defining url patterns, setting up templates, including bootstrap, and passing data into the views.', 'chapters': [{'end': 1996.631, 'start': 1924.397, 'title': 'Implementing admin site registration', 'summary': 'Demonstrates implementing admin site registration and manipulating voting functionality in django, achieving cool functionality with minimal code.', 'duration': 72.234, 'highlights': ['The chapter demonstrates implementing admin site registration and manipulating voting functionality in Django.', 'The functionality achieved with minimal code is highlighted, emphasizing the simplicity of the implementation.', 'The speaker mentions that not a lot of code is required to achieve the cool functionality.']}, {'end': 2766.177, 'start': 1996.852, 'title': 'Customizing site header and front facing website', 'summary': 'Covers customizing the site header and setting up the front facing website, including changing the site title, creating views, defining url patterns, setting up templates, including bootstrap, and passing data into the views.', 'duration': 769.325, 'highlights': ['The chapter covers setting up the front facing website, including changing the site title and creating views. Changing the site title, creating views', 'The chapter explains defining URL patterns and connecting them to the index view. Defining URL patterns, connecting to the index view', 'The chapter discusses setting up templates, including bootstrap, and passing data into the views. Setting up templates, including bootstrap, passing data into the views']}], 'duration': 841.78, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU1924397.jpg', 'highlights': ['The chapter demonstrates implementing admin site registration and manipulating voting functionality in Django.', 'The functionality achieved with minimal code is highlighted, emphasizing the simplicity of the implementation.', 'The speaker mentions that not a lot of code is required to achieve the cool functionality.', 'The chapter covers setting up the front facing website, including changing the site title and creating views.', 'The chapter explains defining URL patterns and connecting them to the index view.', 'The chapter discusses setting up templates, including bootstrap, and passing data into the views.']}, {'end': 3523.717, 'segs': [{'end': 2948.226, 'src': 'embed', 'start': 2915.021, 'weight': 0, 'content': [{'end': 2920.224, 'text': 'we use these double curly braces, kind of like you would in, like a JavaScript framework.', 'start': 2915.021, 'duration': 5.203}, {'end': 2925.027, 'text': "So let's say question dot and then whatever field we want.", 'start': 2921.065, 'duration': 3.962}, {'end': 2926.989, 'text': 'In this case, I want question text.', 'start': 2925.047, 'duration': 1.942}, {'end': 2932.132, 'text': "OK, so let's just save that and see what happens.", 'start': 2928.31, 'duration': 3.822}, {'end': 2935.855, 'text': 'Going to reload this and there we go.', 'start': 2933.033, 'duration': 2.822}, {'end': 2938.256, 'text': 'All right.', 'start': 2935.875, 'duration': 2.381}, {'end': 2948.226, 'text': 'Actually, you know what? I wanted a nav bar just to make it look a little better and to and to show you how to use partials.', 'start': 2941.883, 'duration': 6.343}], 'summary': 'Using double curly braces in javascript framework to access question text, with demonstration of adding a nav bar and using partials.', 'duration': 33.205, 'max_score': 2915.021, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU2915021.jpg'}, {'end': 3000.42, 'src': 'embed', 'start': 2965.735, 'weight': 4, 'content': [{'end': 2968.277, 'text': "We're going to use the template syntax for a URL.", 'start': 2965.735, 'duration': 2.542}, {'end': 2974.081, 'text': 'So we want to put some tags in here and we can say URL and in here.', 'start': 2968.917, 'duration': 5.164}, {'end': 2979.785, 'text': 'Remember, we added the namespace to the to the polls right here, this app name polls.', 'start': 2974.141, 'duration': 5.644}, {'end': 2983.527, 'text': 'So we want to use this right here.', 'start': 2980.205, 'duration': 3.322}, {'end': 2991.693, 'text': "So we're going to say polls and then we want the view that we want to load, which is going to be detail, which we haven't created yet.", 'start': 2983.547, 'duration': 8.146}, {'end': 3000.42, 'text': "Um, and then we want this specific, we need to pass in the specific ID so that it knows which question we're talking about.", 'start': 2992.874, 'duration': 7.546}], 'summary': "Using template syntax for a url with namespace 'polls' and specifying the view 'detail' and id.", 'duration': 34.685, 'max_score': 2965.735, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU2965735.jpg'}, {'end': 3387.906, 'src': 'embed', 'start': 3349.73, 'weight': 2, 'content': [{'end': 3367.297, 'text': 'So this view method is going to get question and display results case will say def define results request.', 'start': 3349.73, 'duration': 17.567}, {'end': 3372.355, 'text': "It's also going to take the question ID as a parameter.", 'start': 3369.753, 'duration': 2.602}, {'end': 3373.516, 'text': 'I need to know which one.', 'start': 3372.375, 'duration': 1.141}, {'end': 3382.743, 'text': "And then let's say question equals and we're going to use a get underscore object underscore or 404,", 'start': 3374.276, 'duration': 8.467}, {'end': 3386.005, 'text': "which is going to look in the database for what we're asking for.", 'start': 3382.743, 'duration': 3.262}, {'end': 3387.906, 'text': "If not, it's going to return a 404.", 'start': 3386.065, 'duration': 1.841}], 'summary': 'The view method retrieves a question and displays results, taking the question id as a parameter.', 'duration': 38.176, 'max_score': 3349.73, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU3349730.jpg'}, {'end': 3489.27, 'src': 'embed', 'start': 3460.464, 'weight': 1, 'content': [{'end': 3463.205, 'text': "So if we save that now, we shouldn't get this error.", 'start': 3460.464, 'duration': 2.741}, {'end': 3466.206, 'text': 'Good So now we have both of these buttons.', 'start': 3463.645, 'duration': 2.561}, {'end': 3468.287, 'text': "However, we haven't created the templates yet.", 'start': 3466.266, 'duration': 2.021}, {'end': 3471.548, 'text': "We've created the views, but we haven't created the templates.", 'start': 3469.087, 'duration': 2.461}, {'end': 3473.969, 'text': "So let's go ahead and do that.", 'start': 3472.508, 'duration': 1.461}, {'end': 3489.27, 'text': "uh, so under templates polls we're gonna have two more html files, we're gonna have results dot html and we're also gonna have um uh,", 'start': 3477.001, 'duration': 12.269}], 'summary': 'Creating two new html files for templates: results.html and another.', 'duration': 28.806, 'max_score': 3460.464, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU3460464.jpg'}], 'start': 2766.978, 'title': 'Passing data to a template and creating detail and results views', 'summary': 'Explains passing data to a template using javascript objects and dictionaries, implementing if-else statements and for loops. it also covers creating detail and results views for a web application using python and django, including adding view methods, creating url paths, and template files.', 'chapters': [{'end': 2886.788, 'start': 2766.978, 'title': 'Passing data to a template', 'summary': 'Explains passing data to a template using javascript objects and dictionaries, implementing if-else statements to check for available polls, and using for loops to iterate through the poll questions.', 'duration': 119.81, 'highlights': ['The chapter demonstrates passing data to a template using JavaScript objects and dictionaries, which allows for efficient organization and access of data within the template.', 'It explains the implementation of if-else statements to check for available polls, providing a user-friendly display based on the availability of poll questions.', 'The chapter also covers the use of for loops to iterate through the poll questions, enabling dynamic rendering of poll data on the web page.']}, {'end': 3523.717, 'start': 2888.795, 'title': 'Creating detail and results views', 'summary': 'Covers creating detail and results views for a web application using python and django, including adding view methods, creating url paths, and creating template files for the views.', 'duration': 634.922, 'highlights': ['The chapter covers creating detail and results views for a web application using Python and Django, including adding view methods, creating URL paths, and creating template files for the views.', 'The code demonstrates adding view methods for detail and results views, which take in request and question_id as parameters and handle rendering templates and passing question data.', 'The transcript includes creating URL paths for the detail and results views, which are mapped to the corresponding view methods and include parameters for question_id.', 'The tutorial involves creating template files for the detail and results views, extending the base HTML and preparing for displaying specific question and choices as well as displaying results for a web application.']}], 'duration': 756.739, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU2766978.jpg', 'highlights': ['The chapter covers creating detail and results views for a web application using Python and Django, including adding view methods, creating URL paths, and creating template files for the views.', 'The code demonstrates adding view methods for detail and results views, which take in request and question_id as parameters and handle rendering templates and passing question data.', 'The tutorial involves creating template files for the detail and results views, extending the base HTML and preparing for displaying specific question and choices as well as displaying results for a web application.', 'The chapter demonstrates passing data to a template using JavaScript objects and dictionaries, which allows for efficient organization and access of data within the template.', 'It explains the implementation of if-else statements to check for available polls, providing a user-friendly display based on the availability of poll questions.', 'The chapter also covers the use of for loops to iterate through the poll questions, enabling dynamic rendering of poll data on the web page.']}, {'end': 4310.162, 'segs': [{'end': 3703.713, 'src': 'embed', 'start': 3672.845, 'weight': 2, 'content': [{'end': 3675.808, 'text': "If there's two or more, then it's going to pluralize it.", 'start': 3672.845, 'duration': 2.963}, {'end': 3678.19, 'text': "It's going to be votes, which is pretty cool.", 'start': 3675.968, 'duration': 2.222}, {'end': 3679.21, 'text': "It's a nice little helper.", 'start': 3678.21, 'duration': 1}, {'end': 3683.554, 'text': 'And then down at the bottom, we just have a link to go back to the polls or to vote again.', 'start': 3679.771, 'duration': 3.783}, {'end': 3688.398, 'text': "So let's go back here and vote now.", 'start': 3684.254, 'duration': 4.144}, {'end': 3688.838, 'text': 'Wait a minute.', 'start': 3688.498, 'duration': 0.34}, {'end': 3689.899, 'text': 'This is the results.', 'start': 3688.878, 'duration': 1.021}, {'end': 3693.682, 'text': "That doesn't make any sense.", 'start': 3692.581, 'duration': 1.101}, {'end': 3698.47, 'text': 'And get object to 404 is not defined.', 'start': 3695.549, 'duration': 2.921}, {'end': 3699.291, 'text': "We didn't bring that in.", 'start': 3698.49, 'duration': 0.801}, {'end': 3703.713, 'text': 'But this should go to detail.', 'start': 3699.331, 'duration': 4.382}], 'summary': 'A discussion about pluralizing votes and navigating to poll results, with a mention of a missing object and the need to link to details.', 'duration': 30.868, 'max_score': 3672.845, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU3672845.jpg'}, {'end': 4116.326, 'src': 'embed', 'start': 4088.776, 'weight': 1, 'content': [{'end': 4092.979, 'text': "so let's create a file called urls dot pi.", 'start': 4088.776, 'duration': 4.203}, {'end': 4101.586, 'text': "i think they should just generate this with each app i don't know why they don't and then let's just copy from our polls urls,", 'start': 4092.979, 'duration': 8.607}, {'end': 4107.362, 'text': 'just grab this and paste that in, and this is going to be much simpler.', 'start': 4101.586, 'duration': 5.776}, {'end': 4109.143, 'text': 'we just need one route.', 'start': 4107.362, 'duration': 1.781}, {'end': 4116.326, 'text': "we don't even need this, and path is going to be yep, just views dot index index.", 'start': 4109.143, 'duration': 7.183}], 'summary': 'Creating a urls.py file with a single route, views.index, for simplicity.', 'duration': 27.55, 'max_score': 4088.776, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU4088776.jpg'}, {'end': 4251.055, 'src': 'embed', 'start': 4184.732, 'weight': 0, 'content': [{'end': 4194.577, 'text': 'i i always do this um, inside our pages, not pages inside our main urls.pi, where i linked, where i included pages urls.', 'start': 4184.732, 'duration': 9.845}, {'end': 4197.559, 'text': "this shouldn't be a slash, it should just be empty.", 'start': 4194.577, 'duration': 2.982}, {'end': 4200.58, 'text': "so let's save that and reload and there we go.", 'start': 4197.559, 'duration': 3.021}, {'end': 4201.921, 'text': 'so now we have our landing page.', 'start': 4200.58, 'duration': 1.341}, {'end': 4205.347, 'text': "So if I say view available polls, there's our poll.", 'start': 4202.506, 'duration': 2.841}, {'end': 4207.267, 'text': 'You can vote.', 'start': 4205.387, 'duration': 1.88}, {'end': 4209.767, 'text': "OK, so that's all working.", 'start': 4207.287, 'duration': 2.48}, {'end': 4214.068, 'text': "Good Now let's add one more.", 'start': 4211.368, 'duration': 2.7}, {'end': 4214.969, 'text': "Whoops, that's the old one.", 'start': 4214.088, 'duration': 0.881}, {'end': 4220.03, 'text': "Let's add from our admin area another question and just make sure that that works.", 'start': 4215.449, 'duration': 4.581}, {'end': 4224.15, 'text': "So we'll go to questions and add question.", 'start': 4221.25, 'duration': 2.9}, {'end': 4241.831, 'text': "We'll say, what is your favorite JS framework? React, view, Angular, and we'll say other.", 'start': 4224.63, 'duration': 17.201}, {'end': 4244.312, 'text': "Okay, we'll save that.", 'start': 4243.052, 'duration': 1.26}, {'end': 4246.353, 'text': 'Actually, we need to put the date and the time.', 'start': 4244.332, 'duration': 2.021}, {'end': 4249.274, 'text': 'We can just say today and now and save.', 'start': 4246.373, 'duration': 2.901}, {'end': 4251.055, 'text': 'Okay, so that got added.', 'start': 4249.294, 'duration': 1.761}], 'summary': 'Tested functionality by adding and viewing polls and questions in the admin area.', 'duration': 66.323, 'max_score': 4184.732, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU4184732.jpg'}], 'start': 3523.777, 'title': 'Creating polls app and adding landing page to django website', 'summary': 'Covers creating views and templates for a polling app with form actions, csrf token, looping through choices, handling user input, and url mapping for voting functionality, resulting in a functional polling app. it also includes adding a simple landing page and a navbar to a django website, integrating partials, demonstrating admin area, authentication, and database relationships.', 'chapters': [{'end': 3929.589, 'start': 3523.777, 'title': 'Creating polls app with django', 'summary': 'Covers the creation of views and templates for a polling app, including form actions, csrf token, looping through choices, handling user input, and url mapping for voting functionality, ultimately resulting in a functional polling app.', 'duration': 405.812, 'highlights': ['The chapter covers the creation of views and templates for a polling app, including form actions, CSRF token, looping through choices, and handling user input.', "The process involves creating the last view 'vote' with a method for handling user input, including accessing the selected choice, error handling, updating the vote count, and redirecting to the results.", 'URL mapping for voting functionality is established by adding a final URL to the polls urls.py file, enabling the functionality to register and process user votes.', 'The chapter also involves debugging and correcting issues in the views, such as correcting the template to load for a specific page and handling error messages for user input.']}, {'end': 4310.162, 'start': 3929.589, 'title': 'Adding landing page and navbar to django website', 'summary': 'Covers adding a simple landing page and a navbar to a django website, integrating partials and creating a new app for the landing page, with a demonstration of the functionality of the website including admin area, authentication, and database relationships.', 'duration': 380.573, 'highlights': ['Demonstrating the functionality of the website including admin area, authentication, and database relationships with a small amount of code. The website includes an admin area for CRUD functionality, authentication, admin roles, and a front end for voting with a database relationship, showcasing a lot of functionality for a small amount of code.', 'Adding a simple landing page and a navbar to the Django website. The process involves creating a new app for the landing page, integrating partials for the navbar, and demonstrating the addition of a landing page with a link to available polls.', 'Creating a new app for the landing page and integrating partials for the navbar. A new app for the landing page is created with a view to render the landing page, and partials are used to integrate a simple bootstrap navbar into the website.']}], 'duration': 786.385, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/e1IyzVyrLSU/pics/e1IyzVyrLSU3523777.jpg', 'highlights': ['The chapter covers the creation of views and templates for a polling app, including form actions, CSRF token, looping through choices, and handling user input.', 'URL mapping for voting functionality is established by adding a final URL to the polls urls.py file, enabling the functionality to register and process user votes.', 'Adding a simple landing page and a navbar to the Django website. The process involves creating a new app for the landing page, integrating partials for the navbar, and demonstrating the addition of a landing page with a link to available polls.', 'Demonstrating the functionality of the website including admin area, authentication, and database relationships with a small amount of code. The website includes an admin area for CRUD functionality, authentication, admin roles, and a front end for voting with a database relationship, showcasing a lot of functionality for a small amount of code.']}], 'highlights': ['The tutorial for the Django polling app consists of seven parts, and the speaker plans to build something similar but with a simplified approach for better comprehension.', 'The chapter covers building a Django web app with functionality like a landing page, poll viewing, and voting, with options to view results and an admin area for user and poll management.', 'The chapter emphasizes the core files of a Django project, including the settings file, URLs.py file for routing, and the WSGI file.', "Creating migrations for the models file is essential to set up the database tables, and can be done using the command 'Python manage.py make migrations polls', which generates a migration file to define the database table structure.", 'Showcasing the ability to create groups, manage users, and change passwords without additional coding.', 'The chapter demonstrates implementing admin site registration and manipulating voting functionality in Django.', 'The chapter covers creating detail and results views for a web application using Python and Django, including adding view methods, creating URL paths, and creating template files for the views.', 'The chapter covers the creation of views and templates for a polling app, including form actions, CSRF token, looping through choices, and handling user input.']}