title
Python Django Tutorial | Learn Python Django In 3 Hours | Python Web Development | Edureka

description
🔥 Python Django Training (Use Code "𝐘𝐎𝐔𝐓𝐔𝐁𝐄𝟐𝟎") - https://www.edureka.co/python-django This Edureka Python Django Course video will help you learn Django from scratch with examples. This Python Django Tutorial is ideal for both beginners as well as professionals who want to master the Django Framework. Below are the topics covered in this Python Web Development Django Tutorial video: 00:00 Introduction 2:11 Why Python for Web Development? 3:36 What is Django? 3:06 Python & Django 3:11 Django Features 3:56 Django Architecture 5:36 Prerequisite 6:01 Django Installation for PyCharm 1:36:47 Writing a test 1:57:07 HTML Structure 1:58:02 How Does HTML work? 1:58:37 HTML Structure 2:04:22 Do's & Don'ts 2:10:42 Django REST Framework 2:11:12 What is an API? 2:12:47 Introduction to REST API 2:13:42 What is REST API? 2:15:47 Django Rest Framework Installation 2:32:52 How to Develop a Website From Scratch? 2:45:47 Django Interview Questions -------------------------------------------------------------------------------------------------------- Check out our Django Training Playlist: https://goo.gl/icG4qG Blog Series: http://bit.ly/2sqmP4s #Edureka #DjangoEdureka #DjangoCourse #DjangoTutorial #DjangoTraining Do subscribe to our channel and hit the bell icon to never miss an update from us in the future: https://goo.gl/6ohpTV Instagram: https://www.instagram.com/edureka_learning/ Facebook: https://www.facebook.com/edurekaIN/ Twitter: https://twitter.com/edurekain LinkedIn: https://www.linkedin.com/company/edureka ------------------------------------------------------------------- How it Works? 1. This is a 5 Week Instructor led Online Course,40 hours of assignment and 20 hours of project work 2. We have a 24x7 One-on-One LIVE Technical Support to help you with any problems you might face or any clarifications you may require during the course. 3. At the end of the training you will be working on a real time project for which we will provide you a Grade and a Verifiable Certificate! It will a live project where you shall create a web application using the Django framework. - - - - - - - - - - - - - - - - - About the Course Edureka's Python Django Training and Certification course is intended to help the learner obtain proficiency in Python programming and develop real-world web applications using Django. This course will cover both the basics and the advanced concepts like writing Python scripts, file operations in Python, working with Databases, creating Views, Templates, Forms, Models and REST APIs in Django. - - - - - - - - - - - - - - - - - - - Why learn Python Django? Django, a popular & high level python web framework, is Flat out amazing. Below are few of the reasons. Instagram, Facebook, Disqus, Pinterest, NASA, The Washington Post and other top companies use Python with Django. For web developers, this means that mastering Python and its popular advanced frameworks like Django should ensure you’re able to find work or even build your own product or service as a startup. Python is an ideal option for bootstrappers and startups because of its quick deployment and—as mentioned earlier—lesser amount of required code next to Java, C, and PHP among others. Python Django framework supports the use of human-readable website URLs, which isn’t only helpful from the actual user’s perspective, but also to search engines, which use the keywords in the URL when ranking sites. Django prevents a number of common security mistakes better than say, PHP does. Moreover, average salary of a Django professional is $117,000 / year in US alone as reported by Indeed.com For more information, Please write back to us at sales@edureka.in or call us at IND: 9606058406 / US: 18338555775 (toll free)

detail
{'title': 'Python Django Tutorial | Learn Python Django In 3 Hours | Python Web Development | Edureka', 'heatmap': [{'end': 628.837, 'start': 414.682, 'weight': 1}, {'end': 831.006, 'start': 724.454, 'weight': 0.781}, {'end': 1248.033, 'start': 1037.359, 'weight': 0.868}, {'end': 1768.723, 'start': 1661.499, 'weight': 0.88}, {'end': 2910.482, 'start': 2701.252, 'weight': 0.783}], 'summary': 'This 3-hour python django tutorial covers django framework overview, setup, database model creation, administration, object handling, database management, user choice function, updating views, forms creation, automated testing, rest api basics, and developing websites and apis with a focus on key concepts, installation, connections, and practical applications.', 'chapters': [{'end': 483.133, 'segs': [{'end': 188.013, 'src': 'embed', 'start': 127.66, 'weight': 0, 'content': [{'end': 135.785, 'text': 'talking about web applications in particular, Python allows you to dynamically build web applications, grants East to build multi-protocol networks,', 'start': 127.66, 'duration': 8.125}, {'end': 144.192, 'text': "provides quick processing, lets you build more functions with fewer lines of code and, the best of all, you don't usually mess up using python,", 'start': 136.105, 'duration': 8.087}, {'end': 145.193, 'text': 'unlike other languages.', 'start': 144.192, 'duration': 1.001}, {'end': 155.461, 'text': 'Apart from that python also provides a number of web development libraries such as cherry pie Django web to pie pyramid turbo gas flask, etc.', 'start': 146.454, 'duration': 9.007}, {'end': 157.102, 'text': 'Talking about Django.', 'start': 156.142, 'duration': 0.96}, {'end': 163.648, 'text': "It's a high-level python web development framework that encourages rapid development and clean pragmatic design.", 'start': 157.383, 'duration': 6.265}, {'end': 168.458, 'text': 'Django is an open-source web framework, which was named after Django Reinhardt.', 'start': 164.415, 'duration': 4.043}, {'end': 171.981, 'text': "It follows the principle of don't repeat yourself.", 'start': 169.159, 'duration': 2.822}, {'end': 176.524, 'text': 'as the name says, the principle is all about keeping the code simple and non-repeating.', 'start': 171.981, 'duration': 4.543}, {'end': 182.228, 'text': 'Django is also a high-level MVT architect which stands on the model view template.', 'start': 176.524, 'duration': 5.704}, {'end': 188.013, 'text': 'Django, along with python, is used by many of the top companies, such as Google, YouTube, Dropbox, etc.', 'start': 182.228, 'duration': 5.785}], 'summary': 'Python enables dynamic web app building, with django being a high-level framework used by top companies like google and youtube.', 'duration': 60.353, 'max_score': 127.66, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc127660.jpg'}, {'end': 261.101, 'src': 'embed', 'start': 231.626, 'weight': 3, 'content': [{'end': 235.15, 'text': "So now let's move on and take a look at the Django architecture.", 'start': 231.626, 'duration': 3.524}, {'end': 241.486, 'text': 'Django follows the MVC MVT architecture MVC actually stands for model view controller.', 'start': 235.743, 'duration': 5.743}, {'end': 250.31, 'text': 'It is used for developing web applications where we break the code into three different segments, namely model view and the controller.', 'start': 241.866, 'duration': 8.444}, {'end': 253.752, 'text': 'a model is basically used for storing and maintaining your data.', 'start': 250.31, 'duration': 3.442}, {'end': 256.313, 'text': 'It is the back end where the database is defined.', 'start': 254.092, 'duration': 2.221}, {'end': 261.101, 'text': 'A view is all about the presentation and it is not at all aware of the backend.', 'start': 256.976, 'duration': 4.125}], 'summary': 'Django follows the mvc mvt architecture, breaking code into model, view, and controller for web applications.', 'duration': 29.475, 'max_score': 231.626, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc231626.jpg'}, {'end': 305.321, 'src': 'embed', 'start': 275.865, 'weight': 4, 'content': [{'end': 277.187, 'text': 'In the MVT architecture.', 'start': 275.865, 'duration': 1.322}, {'end': 279.609, 'text': "There's a predefined template for the user interface.", 'start': 277.407, 'duration': 2.202}, {'end': 287.338, 'text': 'For example, say you want to write several static HTML forms like hello user 1 hello user 2 and so on with template.', 'start': 279.91, 'duration': 7.428}, {'end': 289.621, 'text': "You'll be having only one file that prints.", 'start': 287.579, 'duration': 2.042}, {'end': 291.203, 'text': 'Hello along with the variable name.', 'start': 289.661, 'duration': 1.542}, {'end': 296.589, 'text': 'Now this variable will be substituted in that particular template using some ginger logic.', 'start': 291.763, 'duration': 4.826}, {'end': 298.692, 'text': "That's the magic of template.", 'start': 297.33, 'duration': 1.362}, {'end': 305.321, 'text': "You don't need to rewrite the code again and again in case of MVD Django itself takes care of the controller.", 'start': 298.952, 'duration': 6.369}], 'summary': 'Mvt architecture uses predefined templates for user interface, reducing code repetition in django.', 'duration': 29.456, 'max_score': 275.865, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc275865.jpg'}, {'end': 360.411, 'src': 'embed', 'start': 333.673, 'weight': 5, 'content': [{'end': 337.536, 'text': "So now let's move on and see what are the prerequisites required to learn Django.", 'start': 333.673, 'duration': 3.863}, {'end': 340.88, 'text': "The first thing that you'll have to know is the oops Concepts.", 'start': 338.399, 'duration': 2.481}, {'end': 345.863, 'text': "This is because we'll be creating many classes objects subclasses Etc.", 'start': 341.441, 'duration': 4.422}, {'end': 353.007, 'text': "Also, you'll have to know how to use the python programming language SQL queries HTML CSS Etc.", 'start': 346.563, 'duration': 6.444}, {'end': 360.411, 'text': 'In case you have difficulties with any of these you can check out edureka YouTube channel and the blog series which will surely help you.', 'start': 353.567, 'duration': 6.844}], 'summary': 'Prerequisites for learning django include oops concepts, python, sql queries, html, and css.', 'duration': 26.738, 'max_score': 333.673, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc333673.jpg'}, {'end': 401.439, 'src': 'embed', 'start': 374.963, 'weight': 6, 'content': [{'end': 378.946, 'text': "So the first thing you'll have to do is download python on your PCs to do that.", 'start': 374.963, 'duration': 3.983}, {'end': 380.828, 'text': 'You can go to the official python website.', 'start': 378.986, 'duration': 1.842}, {'end': 390.255, 'text': 'Go to downloads and select any version that suitable for your PCs and select the installer that is suitable with your operating system.', 'start': 382.629, 'duration': 7.626}, {'end': 395.913, 'text': "Once you've downloaded python, you'll have to go to the JetBrains website to download pycharm on your PCs.", 'start': 391.008, 'duration': 4.905}, {'end': 401.439, 'text': "So after downloading python, so after you're done with the setup go to the advanced system settings.", 'start': 396.534, 'duration': 4.905}], 'summary': 'Download python and pycharm on your pcs and set up advanced system settings.', 'duration': 26.476, 'max_score': 374.963, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc374963.jpg'}], 'start': 7.145, 'title': 'Django framework overview', 'summary': 'Provides a detailed overview of django, covering its features, architecture, installation, web development libraries, and usage by top companies like google and youtube, highlighting its rapid development, security, and versatility. it also introduces the django architecture, explaining the mvc mvt structure and installation prerequisites, emphasizing the need for oop, python, sql, and html/css knowledge.', 'chapters': [{'end': 231.606, 'start': 7.145, 'title': 'Django full course overview', 'summary': 'Covers a comprehensive overview of django, including its features, architecture, installation, web development libraries, and its usage by top companies like google and youtube, emphasizing its rapid development, security, and versatility.', 'duration': 224.461, 'highlights': ["Python's capability to build web applications and frameworks, enabling quick processing and less code for more functions. Python enables dynamic web application development, with quick processing and concise code.", "Django's high-level MVT architecture, its usage by top companies, and its remarkable features such as rapid development, security, and versatility. Django's MVT architecture, usage by top companies, and notable features like rapid development and security make it a popular choice.", "Python's web development libraries like cherry pie, Django, web to pie, pyramid turbo gas flask, etc. Python offers various web development libraries like cherry pie, Django, and more."]}, {'end': 483.133, 'start': 231.626, 'title': 'Django architecture & prerequisites', 'summary': 'Introduces the django architecture, explaining the mvc mvt structure, the role of model, view, and controller, and the installation prerequisites for django, emphasizing the need for oop, python, sql, and html/css knowledge.', 'duration': 251.507, 'highlights': ['Django follows the MVC MVT architecture, breaking the code into model, view, and controller, with the model for data storage, the view for presentation, and the controller for business logic. MVC MVT architecture', 'The MVT architecture includes a predefined template for the user interface, allowing for variable substitution and code reusability without manual rewriting. MVT architecture, code reusability', 'Prerequisites for learning Django include OOP concepts, Python programming, SQL queries, and HTML/CSS knowledge, with recommendations for accessing resources on the Edureka YouTube channel and blog series. OOP, Python, SQL, HTML/CSS, Edureka resources', 'The installation process for Django involves downloading Python from the official website, selecting the appropriate version, and setting the environment variables, followed by downloading PyCharm from the official JetBrains website. Installation process, Python, PyCharm']}], 'duration': 475.988, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc7145.jpg', 'highlights': ['Python enables dynamic web application development, with quick processing and concise code.', "Django's MVT architecture, usage by top companies, and notable features like rapid development and security make it a popular choice.", 'Python offers various web development libraries like cherry pie, Django, and more.', 'MVC MVT architecture', 'MVT architecture, code reusability', 'OOP, Python, SQL, HTML/CSS, Edureka resources', 'Installation process, Python, PyCharm']}, {'end': 1362.309, 'segs': [{'end': 527.785, 'src': 'embed', 'start': 502.714, 'weight': 0, 'content': [{'end': 507.758, 'text': 'Okay So after creating a project open up the terminal and type pip install Django.', 'start': 502.714, 'duration': 5.044}, {'end': 519.357, 'text': "So when you're installing Django, along with Django, SQL parse database and the pyTZ module also gets installed,", 'start': 512.03, 'duration': 7.327}, {'end': 522.981, 'text': 'SQL parse is actually a non-validating SQL parser for Python.', 'start': 519.357, 'duration': 3.624}, {'end': 527.785, 'text': 'It provides support for passing splitting and formatting SQL statements.', 'start': 523.621, 'duration': 4.164}], 'summary': 'Installing django includes sql parse and pytz module.', 'duration': 25.071, 'max_score': 502.714, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc502714.jpg'}, {'end': 666.491, 'src': 'embed', 'start': 638.042, 'weight': 1, 'content': [{'end': 643.445, 'text': 'after that, the very important file that Django creates for you is the manage.py file.', 'start': 638.042, 'duration': 5.403}, {'end': 648.748, 'text': 'the manage.py file does the same thing as Django admin, but takes care of a few things for you.', 'start': 643.445, 'duration': 5.303}, {'end': 651.802, 'text': 'It puts your projects package on system part.', 'start': 649.46, 'duration': 2.342}, {'end': 658.506, 'text': 'It sets the Django settings module environment variable so that it points to your project settings dot py file.', 'start': 652.362, 'duration': 6.144}, {'end': 661.148, 'text': 'Next is the init dot py file.', 'start': 659.206, 'duration': 1.942}, {'end': 666.491, 'text': 'This is an empty file that tells python that this directory should be considered as a python package.', 'start': 661.528, 'duration': 4.963}], 'summary': "Django's manage.py sets settings module; init.py signals python package.", 'duration': 28.449, 'max_score': 638.042, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc638042.jpg'}, {'end': 831.006, 'src': 'heatmap', 'start': 724.454, 'weight': 0.781, 'content': [{'end': 727.295, 'text': 'It can also import values from other settings files.', 'start': 724.454, 'duration': 2.841}, {'end': 730.556, 'text': "So now let's take a look at the urls.py file.", 'start': 728.055, 'duration': 2.501}, {'end': 737.84, 'text': 'Let me just clear these comments the urls.py file consists of all the URL declarations for the Django project.', 'start': 731.037, 'duration': 6.803}, {'end': 742.19, 'text': 'It is basically like a table of contents of your Django part site.', 'start': 738.647, 'duration': 3.543}, {'end': 750.698, 'text': 'So, basically, when a user requests for page from your Django part site, this file determines which python code to execute Django,', 'start': 743.291, 'duration': 7.407}, {'end': 757.544, 'text': 'determines the root URL cons module to use, loads that python module and looks for the variable URL patterns.', 'start': 750.698, 'duration': 6.846}, {'end': 761.888, 'text': 'So this should actually be a part of the URLs instances.', 'start': 758.585, 'duration': 3.303}, {'end': 769.599, 'text': 'Django then runs through each URL pattern in order and stops at the first one that matches the requested URL.', 'start': 762.634, 'duration': 6.965}, {'end': 773.142, 'text': 'once that is match, Django imports and calls the given view,', 'start': 769.599, 'duration': 3.543}, {'end': 778.005, 'text': 'which is a simple Python function that returns to the user the page that he has requested.', 'start': 773.142, 'duration': 4.863}, {'end': 787.672, 'text': 'So now let me show you all the WSGI file the WSGI dot py file is an entry point for the WSGI compatible web servers to serve your project.', 'start': 778.365, 'duration': 9.307}, {'end': 791.772, 'text': 'WSGI actually stands for web server Gateway interface.', 'start': 788.75, 'duration': 3.022}, {'end': 801.019, 'text': 'It is a specification that describes how a web server communicates with the web applications and how the web applications can be chained together to process one request.', 'start': 792.193, 'duration': 8.826}, {'end': 807.223, 'text': 'So now I hope you have a clear idea about what these files are and what is the purpose of creating them.', 'start': 801.719, 'duration': 5.504}, {'end': 812.907, 'text': 'now, to make sure that your project is running, simply type python manage.py.', 'start': 807.223, 'duration': 5.684}, {'end': 813.487, 'text': 'run server.', 'start': 812.907, 'duration': 0.58}, {'end': 816.89, 'text': 'Sorry, I forgot to give a space over here.', 'start': 815.429, 'duration': 1.461}, {'end': 824.98, 'text': 'Okay So as you can see when I hit this command it has returned a URL for me now, let me show you all what happens when I click on this URL.', 'start': 817.893, 'duration': 7.087}, {'end': 831.006, 'text': 'So congratulations guys when you see this rocket which is ready to take off.', 'start': 827.603, 'duration': 3.403}], 'summary': "Urls.py file contains url declarations for django project, wsgi file is an entry point for web servers, and running 'python manage.py runserver' starts the project.", 'duration': 106.552, 'max_score': 724.454, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc724454.jpg'}, {'end': 918.938, 'src': 'embed', 'start': 891.65, 'weight': 2, 'content': [{'end': 895.231, 'text': 'An app is basically a web application that does something.', 'start': 891.65, 'duration': 3.581}, {'end': 900.633, 'text': 'a project, on the other hand, can maintain multiple apps, and an app can be in multiple projects.', 'start': 895.231, 'duration': 5.402}, {'end': 911.936, 'text': "Okay So now to create an app I'll go back to my terminal hit control C and then type python manage.py start app followed by the name of the app.", 'start': 901.393, 'duration': 10.543}, {'end': 914.136, 'text': 'You can give any name of your choice.', 'start': 912.576, 'duration': 1.56}, {'end': 916.117, 'text': "I'll just name it as technical courses.", 'start': 914.396, 'duration': 1.721}, {'end': 918.938, 'text': 'Sorry guys.', 'start': 918.437, 'duration': 0.501}], 'summary': "An app is a web application that can be part of multiple projects. creating an app involves using 'python manage.py start app' command.", 'duration': 27.288, 'max_score': 891.65, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc891650.jpg'}, {'end': 1248.033, 'src': 'heatmap', 'start': 1037.359, 'weight': 0.868, 'content': [{'end': 1038.941, 'text': 'Sorry, I have to specify this within quotes.', 'start': 1037.359, 'duration': 1.582}, {'end': 1041.488, 'text': "and I'll write this is my home page.", 'start': 1039.707, 'duration': 1.781}, {'end': 1052.412, 'text': 'So now the views component is ready to display this message on my home page, but to make this function return what I want.', 'start': 1045.348, 'duration': 7.064}, {'end': 1058.055, 'text': "I'll have to connect this views.py file to the urls.py file which is present in my project.", 'start': 1052.712, 'duration': 5.343}, {'end': 1064.818, 'text': 'So to connect the views.py file, which is present in my app to the urls.py file, which is present in the project.', 'start': 1058.815, 'duration': 6.003}, {'end': 1068.199, 'text': "I'll have to create another urls.py file within my app.", 'start': 1065.098, 'duration': 3.101}, {'end': 1074.505, 'text': 'Now this is done because I do not want to mess up with the original urls.py file, which is present in my project.', 'start': 1068.903, 'duration': 5.602}, {'end': 1078.907, 'text': 'So, in case you have a number of URLs and apps to be returned,', 'start': 1075.266, 'duration': 3.641}, {'end': 1086.51, 'text': 'the original urls.py file present in my project can get too cluttered and that becomes messy, and to avoid that,', 'start': 1078.907, 'duration': 7.603}, {'end': 1091.512, 'text': "I'm going to create another urls.py file within my app, which is also the conventional method.", 'start': 1086.51, 'duration': 5.002}, {'end': 1098.435, 'text': 'So now this urls.py file is very much similar to the urls.py file, which is present within my project.', 'start': 1092.553, 'duration': 5.882}, {'end': 1108.255, 'text': "So all I'm going to do within the newly created urls.py file in my app directory is to import the path function from Django dot URLs.", 'start': 1099.033, 'duration': 9.222}, {'end': 1112.895, 'text': "So from Django dot URLs, I'll import the path function.", 'start': 1108.615, 'duration': 4.28}, {'end': 1115.736, 'text': 'So now for the URLs pattern.', 'start': 1114.036, 'duration': 1.7}, {'end': 1119.056, 'text': "I'll just copy this and I'll paste it in the urls.py.", 'start': 1115.736, 'duration': 3.32}, {'end': 1124.117, 'text': "file of my app and I'll just delete this admin URL and I leave this blank now.", 'start': 1119.056, 'duration': 5.061}, {'end': 1128.338, 'text': "I'm leaving this blank because I want this function to be returned on my home page.", 'start': 1124.137, 'duration': 4.201}, {'end': 1136.657, 'text': 'Okay, So now what you have to do is specify the views dot courses function within the urls dot py file present in your app.', 'start': 1129.051, 'duration': 7.606}, {'end': 1143.362, 'text': 'to do this, just type views dot name of the function, which is courses in my case, followed by the name of your page.', 'start': 1136.657, 'duration': 6.705}, {'end': 1144.923, 'text': 'You can give any name of your choice.', 'start': 1143.422, 'duration': 1.501}, {'end': 1146.424, 'text': "I'll just name it as home page.", 'start': 1145.243, 'duration': 1.181}, {'end': 1152.816, 'text': "Now, as you can see, I've added the function present in the views file in the URL path,", 'start': 1148.092, 'duration': 4.724}, {'end': 1157.18, 'text': "but I'll have to specify from where this function has to be taken to do that.", 'start': 1152.816, 'duration': 4.364}, {'end': 1165.126, 'text': "I'm going to import the views function present in this directory and for that I'll type from dot import views.", 'start': 1157.3, 'duration': 7.826}, {'end': 1168.329, 'text': 'now getting back to the URLs dot py file present in my project.', 'start': 1165.126, 'duration': 3.203}, {'end': 1170.911, 'text': "I'll have to include the path of my home page.", 'start': 1168.91, 'duration': 2.001}, {'end': 1182.218, 'text': "So I'll create another path function and within this I'll specify an empty string and then use the include function and specify what I want to include over here.", 'start': 1171.352, 'duration': 10.866}, {'end': 1188.242, 'text': 'So basically I want to import this file, which is technical courses slash URLs dot P Y.', 'start': 1182.758, 'duration': 5.484}, {'end': 1191.004, 'text': "So I'm going to specify that as technical courses.", 'start': 1188.242, 'duration': 2.762}, {'end': 1195.107, 'text': 'Dot URLs after this.', 'start': 1193.085, 'duration': 2.022}, {'end': 1197.848, 'text': "I'll just close this function and close the path function.", 'start': 1195.167, 'duration': 2.681}, {'end': 1205.079, 'text': "Okay So one thing I don't know if you guys have noticed I've made use of the include function, but I've not imported this function.", 'start': 1198.369, 'duration': 6.71}, {'end': 1208.541, 'text': 'This function has to be imported from Django dot URLs.', 'start': 1205.58, 'duration': 2.961}, {'end': 1210.322, 'text': 'So to import that function.', 'start': 1209.142, 'duration': 1.18}, {'end': 1212.243, 'text': "I'll just write comma include.", 'start': 1210.402, 'duration': 1.841}, {'end': 1216.746, 'text': "So now I'll get back to the development server and see what it returns.", 'start': 1213.644, 'duration': 3.102}, {'end': 1222.229, 'text': 'Congratulations guys this time instead of seeing the rocket that was ready to be launched.', 'start': 1217.646, 'duration': 4.583}, {'end': 1226.231, 'text': 'My website is displaying the message that I wanted to display.', 'start': 1223.369, 'duration': 2.862}, {'end': 1229.729, 'text': 'So now your website is ready to be launched.', 'start': 1227.808, 'duration': 1.921}, {'end': 1238.271, 'text': "Okay, so our website is executing very well, but I want to show you all something that's displayed as a message for me in the terminal.", 'start': 1230.489, 'duration': 7.782}, {'end': 1248.033, 'text': 'So as you can see it says you have 17 unapplied migrations and it says your project may not work properly until you apply the migrations for the apps.', 'start': 1239.071, 'duration': 8.962}], 'summary': 'The transcript discusses connecting views.py to urls.py, creating a separate urls.py file within the app, and importing functions to display a message on the home page. additionally, it mentions resolving unapplied migrations.', 'duration': 210.674, 'max_score': 1037.359, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc1037358.jpg'}, {'end': 1091.512, 'src': 'embed', 'start': 1045.348, 'weight': 3, 'content': [{'end': 1052.412, 'text': 'So now the views component is ready to display this message on my home page, but to make this function return what I want.', 'start': 1045.348, 'duration': 7.064}, {'end': 1058.055, 'text': "I'll have to connect this views.py file to the urls.py file which is present in my project.", 'start': 1052.712, 'duration': 5.343}, {'end': 1064.818, 'text': 'So to connect the views.py file, which is present in my app to the urls.py file, which is present in the project.', 'start': 1058.815, 'duration': 6.003}, {'end': 1068.199, 'text': "I'll have to create another urls.py file within my app.", 'start': 1065.098, 'duration': 3.101}, {'end': 1074.505, 'text': 'Now this is done because I do not want to mess up with the original urls.py file, which is present in my project.', 'start': 1068.903, 'duration': 5.602}, {'end': 1078.907, 'text': 'So, in case you have a number of URLs and apps to be returned,', 'start': 1075.266, 'duration': 3.641}, {'end': 1086.51, 'text': 'the original urls.py file present in my project can get too cluttered and that becomes messy, and to avoid that,', 'start': 1078.907, 'duration': 7.603}, {'end': 1091.512, 'text': "I'm going to create another urls.py file within my app, which is also the conventional method.", 'start': 1086.51, 'duration': 5.002}], 'summary': 'Need to connect views.py to urls.py in project and app, to avoid clutter in original urls.py file', 'duration': 46.164, 'max_score': 1045.348, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc1045348.jpg'}, {'end': 1307.639, 'src': 'embed', 'start': 1278.692, 'weight': 4, 'content': [{'end': 1284.737, 'text': 'So as you can see over here the default database SQLite 3 has already been installed for us by Django.', 'start': 1278.692, 'duration': 6.045}, {'end': 1289.574, 'text': 'However, if you wish to use any other database,', 'start': 1286.713, 'duration': 2.861}, {'end': 1296.596, 'text': 'install the appropriate database bindings and change the keys in the databases default item to match your database connection settings.', 'start': 1289.574, 'duration': 7.022}, {'end': 1302.317, 'text': 'However, for a detailed information on this, you can check out the original documentation,', 'start': 1297.656, 'duration': 4.661}, {'end': 1307.639, 'text': "where you'll find all the details required for the settings of the database you prefer to use.", 'start': 1302.317, 'duration': 5.322}], 'summary': 'Django comes with sqlite 3 pre-installed, but allows for other databases with appropriate bindings and connection settings.', 'duration': 28.947, 'max_score': 1278.692, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc1278692.jpg'}], 'start': 483.757, 'title': 'Django setup and connections', 'summary': 'Covers setting up django in pycharm, including installation, project creation, and app creation, and connecting views and urls in a django project, with a focus on file connections and database integration.', 'chapters': [{'end': 1023.516, 'start': 483.757, 'title': 'Setting up django in pycharm', 'summary': 'Explains how to set up django in pycharm, covering the installation of django and its related modules, creating a django project, understanding the purpose of key files such as manage.py, init.py, settings.py, urls.py, and wsgi.py, and creating a django app while highlighting the purpose and structure of a web application.', 'duration': 539.759, 'highlights': ['Installing Django and Related Modules The installation process for Django in PyCharm is explained, including the installation of Django, SQL parse database, and the pyTZ module, which provides cross-platform timezone calculations using Python 2.4 and higher.', "Understanding Django Project Structure The purpose of key files such as manage.py, init.py, settings.py, and urls.py is highlighted, explaining their roles in a Django project and how they contribute to the project's functionality.", 'Creating a Django App The process of creating a Django app is detailed, covering the creation of an app, the structure of the created files, and the purpose of the admin section within the app.']}, {'end': 1362.309, 'start': 1024.096, 'title': 'Connecting views and urls in django', 'summary': "Discusses connecting the views.py file to the urls.py file in a django project, creating a separate urls.py file within the app to avoid clutter, and connecting the project to the database using the 'python manage.py migrate' command.", 'duration': 338.213, 'highlights': ['Creating a separate urls.py file within the app is a conventional method to avoid clutter in the original urls.py file present in the project, which can get messy if there are a number of URLs and apps to be returned.', "The default database SQLite 3 is already installed for us by Django, and to connect the project to the database, the 'python manage.py migrate' command is used, which, when successful, displays a message saying 'system check identified no issues'.", 'To connect the views.py file to the urls.py file, a new urls.py file is created within the app, and the views function is specified within the urls.py file present in the app directory, along with importing the views function from the directory and using the include function to import the file containing the URLs for the app.', 'The settings.py file in a Django project includes the default database SQLite 3, and if one wishes to use any other database, they need to install the appropriate database bindings and change the keys in the databases default item to match the database connection settings, with detailed information available in the original documentation.', 'The settings.py file in a Django project also includes installed apps such as admin site, authentication system, framework for content types, session framework, messaging framework, and framework for managing static files.']}], 'duration': 878.552, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc483757.jpg', 'highlights': ['Installing Django and Related Modules The installation process for Django in PyCharm is explained, including the installation of Django, SQL parse database, and the pyTZ module.', 'Understanding Django Project Structure The purpose of key files such as manage.py, init.py, settings.py, and urls.py is highlighted, explaining their roles in a Django project.', 'Creating a Django App The process of creating a Django app is detailed, covering the creation of an app, the structure of the created files, and the purpose of the admin section within the app.', 'Creating a separate urls.py file within the app is a conventional method to avoid clutter in the original urls.py file present in the project.', "The default database SQLite 3 is already installed for us by Django, and to connect the project to the database, the 'python manage.py migrate' command is used.", 'To connect the views.py file to the urls.py file, a new urls.py file is created within the app, and the views function is specified within the urls.py file present in the app directory.', 'The settings.py file in a Django project includes the default database SQLite 3, and if one wishes to use any other database, they need to install the appropriate database bindings and change the keys in the databases default item to match the database connection settings.']}, {'end': 2115.711, 'segs': [{'end': 1405.824, 'src': 'embed', 'start': 1362.992, 'weight': 0, 'content': [{'end': 1373.834, 'text': 'Now what exactly happens over here is the migrate command looks at the installed app settings and creates any necessary database tables according to the database settings in your settings.py file.', 'start': 1362.992, 'duration': 10.842}, {'end': 1377.275, 'text': 'Then the database migrations are shipped with the app.', 'start': 1374.455, 'duration': 2.82}, {'end': 1380.736, 'text': 'So now that my project has been connected to the database.', 'start': 1378.115, 'duration': 2.621}, {'end': 1384.237, 'text': "The next thing that I'm going to do is create models for my website.", 'start': 1381.056, 'duration': 3.181}, {'end': 1389.498, 'text': "So to create models, I'll go to the models.py file, which is already created for me by Django.", 'start': 1384.997, 'duration': 4.501}, {'end': 1391.435, 'text': "I'll clear this comment over here.", 'start': 1390.214, 'duration': 1.221}, {'end': 1394.877, 'text': 'And as you can see it has already imported models for me.', 'start': 1391.975, 'duration': 2.902}, {'end': 1405.824, 'text': "So, within this file over here I'll be creating two classes where the first class will be the all courses class and it's going to hold the name of the course and the instructors name to do that.", 'start': 1395.757, 'duration': 10.067}], 'summary': 'The migrate command creates necessary database tables. models are created in the models.py file, including two classes for courses.', 'duration': 42.832, 'max_score': 1362.992, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc1362992.jpg'}, {'end': 1521.131, 'src': 'embed', 'start': 1495.161, 'weight': 4, 'content': [{'end': 1500.085, 'text': "I'll connect this subclass to the main class using the foreign key method to do that.", 'start': 1495.161, 'duration': 4.924}, {'end': 1507.379, 'text': "I'll just type models dot, foreign key, And since this method is inheriting the all courses method,", 'start': 1500.105, 'duration': 7.274}, {'end': 1512.103, 'text': "I'll just type all courses and then I'm going to use the on delete function.", 'start': 1507.379, 'duration': 4.724}, {'end': 1515.146, 'text': "Now, you all might be wondering why I'm using this function.", 'start': 1512.724, 'duration': 2.422}, {'end': 1521.131, 'text': "Okay, I'll just tell you that in a while and I'll just type models dot Cascade.", 'start': 1515.166, 'duration': 5.965}], 'summary': 'Connecting subclass to main class using foreign key method and on delete function, with models dot cascade.', 'duration': 25.97, 'max_score': 1495.161, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc1495161.jpg'}, {'end': 1630.704, 'src': 'embed', 'start': 1591.056, 'weight': 2, 'content': [{'end': 1599.019, 'text': 'Each model has a number of class variables Both my classes have a few variables each of which represents a database field in the model.', 'start': 1591.056, 'duration': 7.963}, {'end': 1603.182, 'text': 'Now this field is actually represented by an instance of the field class.', 'start': 1599.42, 'duration': 3.762}, {'end': 1607.506, 'text': 'For example, the care field function that I used over here for characters.', 'start': 1603.983, 'duration': 3.523}, {'end': 1611.949, 'text': 'This basically tells Django what type of data each field holds.', 'start': 1608.226, 'duration': 3.723}, {'end': 1615.632, 'text': "So now talking about the foreign key function that I've used over here.", 'start': 1612.87, 'duration': 2.762}, {'end': 1619.135, 'text': 'Now this function is actually used to define a relationship.', 'start': 1616.273, 'duration': 2.862}, {'end': 1624.28, 'text': 'So it basically tells Django that each detail is related to a single course.', 'start': 1619.853, 'duration': 4.427}, {'end': 1630.704, 'text': "In addition to this, the small bit of model code that we've written over here gives a lot of information.", 'start': 1625.322, 'duration': 5.382}], 'summary': 'Models have class variables representing database fields, using field class to define data types, and foreign key function for relationships.', 'duration': 39.648, 'max_score': 1591.056, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc1591056.jpg'}, {'end': 1768.723, 'src': 'heatmap', 'start': 1661.499, 'weight': 0.88, 'content': [{'end': 1664.34, 'text': 'go to the apps file over here and from here,', 'start': 1661.499, 'duration': 2.841}, {'end': 1672.404, 'text': "take the class name and paste it in the settings dot py file where you're creating the app and paste it over here.", 'start': 1664.34, 'duration': 8.064}, {'end': 1677.026, 'text': 'after this, just close the inverted commas and do not forget to specify the comma.', 'start': 1672.404, 'duration': 4.622}, {'end': 1683.474, 'text': "Now, we've told Django that it has to include the technical courses app After this you'll have to run another command.", 'start': 1677.486, 'duration': 5.988}, {'end': 1691.539, 'text': "So I'll just return the control back to my terminal and I'll use the command python manage.py make migrations and the name of my app.", 'start': 1683.494, 'duration': 8.045}, {'end': 1696.442, 'text': 'python manage.py make migrations and the name of my app.', 'start': 1691.539, 'duration': 4.903}, {'end': 1701.825, 'text': 'Oh, it has thrown an error.', 'start': 1700.764, 'duration': 1.061}, {'end': 1704.987, 'text': 'It says type error in the cascade function.', 'start': 1701.845, 'duration': 3.142}, {'end': 1706.908, 'text': "So I'll just get back to models.", 'start': 1705.707, 'duration': 1.201}, {'end': 1708.137, 'text': 'or here it is.', 'start': 1707.617, 'duration': 0.52}, {'end': 1710.619, 'text': "I've not specified any attributes to this.", 'start': 1708.698, 'duration': 1.921}, {'end': 1712.44, 'text': 'So just remove this from here.', 'start': 1710.959, 'duration': 1.481}, {'end': 1716.823, 'text': "So I'll just clear the brackets save this come back to my terminal.", 'start': 1713.081, 'duration': 3.742}, {'end': 1718.824, 'text': 'So here it is.', 'start': 1716.843, 'duration': 1.981}, {'end': 1727.29, 'text': "make migrations basically tells Django that you've made some changes to the models and that Django should store these changes as a migration.", 'start': 1718.824, 'duration': 8.466}, {'end': 1730.892, 'text': 'migrations are basically how Django stores changes to your models.', 'start': 1727.29, 'duration': 3.602}, {'end': 1737.163, 'text': "After this you'll have to use the SQL migrate command that takes migration names and returns their SQL.", 'start': 1731.721, 'duration': 5.442}, {'end': 1746.205, 'text': 'So all you have to do is use python manage.py SQL migrate and specify this ID which is present over here.', 'start': 1737.683, 'duration': 8.522}, {'end': 1748.106, 'text': "So it's not not not one.", 'start': 1746.585, 'duration': 1.521}, {'end': 1750.926, 'text': 'So just type the same and hit enter.', 'start': 1748.566, 'duration': 2.36}, {'end': 1753.927, 'text': 'I forgot to specify the name of my project.', 'start': 1751.827, 'duration': 2.1}, {'end': 1756.248, 'text': "I'll just specify the name of my project over here.", 'start': 1754.507, 'duration': 1.741}, {'end': 1764.822, 'text': 'So as you can see the table names are automatically generated by combining the name of the app and the lowercase name of the model.', 'start': 1758.041, 'duration': 6.781}, {'end': 1768.723, 'text': 'Also, the primary keys are added automatically.', 'start': 1765.943, 'duration': 2.78}], 'summary': 'Adding a new app to django, running make migrations, and sql migration commands for managing model changes.', 'duration': 107.224, 'max_score': 1661.499, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc1661499.jpg'}], 'start': 1362.992, 'title': 'Django database model creation', 'summary': 'Covers database migration using the migrate command, creation of models, defining relationships, using foreign key function, creating database schema, applying migrations, and utilizing the interactive python shell to interact with the database in django.', 'chapters': [{'end': 1494.881, 'start': 1362.992, 'title': 'Database migration and model creation in django', 'summary': 'Discusses the process of database migration using the migrate command and the creation of models in django, including the creation of two classes to hold course and instructor details.', 'duration': 131.889, 'highlights': ['The migrate command creates necessary database tables based on settings.py file, facilitating the database migrations with the app.', "Creating models involves defining classes to hold course and instructor details, specifying attributes such as course name and instructor's name, and defining the course types available at edureka as self-paced or instructor-led.", "The process includes creating two classes within the models.py file—one for holding the name of the course and the instructor's name, and another for holding the details of each course, including the course types available at edureka."]}, {'end': 2115.711, 'start': 1495.161, 'title': 'Django database relationship and model creation', 'summary': 'Explains the process of creating database models in django, including defining relationships, using foreign key function, creating database schema, applying migrations, and utilizing the interactive python shell to interact with the database.', 'duration': 620.55, 'highlights': ['The chapter explains the process of creating database models in Django, including defining relationships, using foreign key function, creating database schema, applying migrations, and utilizing the interactive python shell to interact with the database.', 'The foreign key method is used to connect a subclass to the main class, ensuring that when a course is deleted, its details are also removed, with the on delete function and models.Cascade, allowing for defining relationships and specifying data length (500 characters).', 'The use of models for subclasses, each representing a database field, and the field class instance for representing data types are key to creating the database schema and Python access API, with the migration command facilitating changes to models and the SQL migrate command generating SQL statements for migrations.', 'The interactive python shell is utilized to import classes, retrieve and add data to the database, and modify the STR function to customize output for ease of understanding and clarity.']}], 'duration': 752.719, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc1362992.jpg', 'highlights': ['The migrate command creates necessary database tables based on settings.py file, facilitating the database migrations with the app.', "The process includes creating two classes within the models.py file—one for holding the name of the course and the instructor's name, and another for holding the details of each course, including the course types available at edureka.", 'The chapter explains the process of creating database models in Django, including defining relationships, using foreign key function, creating database schema, applying migrations, and utilizing the interactive python shell to interact with the database.', 'The use of models for subclasses, each representing a database field, and the field class instance for representing data types are key to creating the database schema and Python access API, with the migration command facilitating changes to models and the SQL migrate command generating SQL statements for migrations.', 'The foreign key method is used to connect a subclass to the main class, ensuring that when a course is deleted, its details are also removed, with the on delete function and models.Cascade, allowing for defining relationships and specifying data length (500 characters).']}, {'end': 4013.204, 'segs': [{'end': 2144.667, 'src': 'embed', 'start': 2116.151, 'weight': 0, 'content': [{'end': 2122.837, 'text': 'Let me just tell you that it is very important to add this, not only for your own convenience when dealing with the interactive prompt,', 'start': 2116.151, 'duration': 6.686}, {'end': 2129.582, 'text': "but also because objects representations are used throughout Django's automatically generated admin.", 'start': 2122.837, 'duration': 6.745}, {'end': 2135.047, 'text': "save these changes, get back to your shell, and now I'll just exit this.", 'start': 2129.582, 'duration': 5.465}, {'end': 2144.667, 'text': "I'll type python manage.py I'll get into my shell again using python managed at py shell command.", 'start': 2138.149, 'duration': 6.518}], 'summary': 'Adding objects representations is crucial in django for admin and interactive prompt.', 'duration': 28.516, 'max_score': 2116.151, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc2116151.jpg'}, {'end': 2273.177, 'src': 'embed', 'start': 2239.571, 'weight': 1, 'content': [{'end': 2244.546, 'text': "Okay So till now we've been seeing how to add and filter items from the database.", 'start': 2239.571, 'duration': 4.975}, {'end': 2250.25, 'text': "Now I'll get back to my pie charm and show you all how you can actually work with the admin to do that.", 'start': 2245.046, 'duration': 5.204}, {'end': 2252.753, 'text': 'open up the admin file present in the app.', 'start': 2250.25, 'duration': 2.503}, {'end': 2253.193, 'text': 'now for this.', 'start': 2252.753, 'duration': 0.44}, {'end': 2255.455, 'text': "I'll just open up the terminal and over here.", 'start': 2253.233, 'duration': 2.222}, {'end': 2261.06, 'text': "I'll just type the command python-managed.py create super user create super user is one word.", 'start': 2255.795, 'duration': 5.265}, {'end': 2262.1, 'text': 'So just be careful guys.', 'start': 2261.08, 'duration': 1.02}, {'end': 2273.177, 'text': 'So python-managed.py create super user So the first thing is going to ask you is to enter a username.', 'start': 2262.621, 'duration': 10.556}], 'summary': 'Demonstrating how to create a super user in the admin file using python-managed.py command.', 'duration': 33.606, 'max_score': 2239.571, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc2239571.jpg'}, {'end': 2461.951, 'src': 'embed', 'start': 2433.252, 'weight': 2, 'content': [{'end': 2435.994, 'text': "So I hope you're clear till all that's been explained till here now.", 'start': 2433.252, 'duration': 2.742}, {'end': 2437.115, 'text': "I'll get back to pie charm.", 'start': 2436.014, 'duration': 1.101}, {'end': 2440.458, 'text': "I'll open the views file and I'll modify this.", 'start': 2437.515, 'duration': 2.943}, {'end': 2448.803, 'text': 'a view is basically a type of web page in your Django application, guys, that generally serves as a specific function and has a specific template.', 'start': 2440.458, 'duration': 8.345}, {'end': 2450.805, 'text': 'say, for example, you have a blog application.', 'start': 2448.803, 'duration': 2.002}, {'end': 2458.93, 'text': "So in the blog application, you will have something called as the blog homepage So for that you'll have a blog home page detail page Etc.", 'start': 2451.165, 'duration': 7.765}, {'end': 2461.951, 'text': 'Now for my application, which is technical courses.', 'start': 2459.65, 'duration': 2.301}], 'summary': 'Explaining django views and their role in web applications.', 'duration': 28.699, 'max_score': 2433.252, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc2433252.jpg'}, {'end': 2910.482, 'src': 'heatmap', 'start': 2701.252, 'weight': 0.783, 'content': [{'end': 2707.617, 'text': "Now within this templates directory, I'll create another sub directory which will have the same name as my application.", 'start': 2701.252, 'duration': 6.365}, {'end': 2709.458, 'text': "So I'll name it as technical courses.", 'start': 2708.017, 'duration': 1.441}, {'end': 2716.736, 'text': "So if you're wondering why I'm doing it this way, it is just the standard convention to create templates within your code.", 'start': 2711.354, 'duration': 5.382}, {'end': 2721.058, 'text': 'It also makes it very easy for Django to look for templates within the app itself.', 'start': 2717.176, 'duration': 3.882}, {'end': 2729.901, 'text': "So now within the subdirectory, I'll create an HTML file and since this is for the courses page, I'll just write courses dot HTML.", 'start': 2721.878, 'duration': 8.023}, {'end': 2732.322, 'text': 'So this is basically my home page also guys.', 'start': 2730.501, 'duration': 1.821}, {'end': 2735.743, 'text': "I'll just clear this and over here.", 'start': 2733.422, 'duration': 2.321}, {'end': 2741.523, 'text': "I'll just create a list say ordered list Within this I'll just write some python code.", 'start': 2736.483, 'duration': 5.04}, {'end': 2748.445, 'text': "Remember that whenever you're including python code within HTML, you'll have to do it within the curly braces and the ampersand symbols,", 'start': 2742.003, 'duration': 6.442}, {'end': 2749.465, 'text': 'just as shown on screen.', 'start': 2748.445, 'duration': 1.02}, {'end': 2751.446, 'text': "I'll just make use of the for loop.", 'start': 2750.005, 'duration': 1.441}, {'end': 2759.849, 'text': "So for X in all courses, so within this I'll create a list and not just this I'll create a link as well.", 'start': 2752.166, 'duration': 7.683}, {'end': 2762.83, 'text': "So I'll link this so I'll use the href function.", 'start': 2760.269, 'duration': 2.561}, {'end': 2765.891, 'text': "So for that I'll have to use the anchor tag and href.", 'start': 2763.45, 'duration': 2.441}, {'end': 2767.734, 'text': 'Now over here.', 'start': 2767.193, 'duration': 0.541}, {'end': 2770.636, 'text': "I'll have to specify the name of my application.", 'start': 2768.054, 'duration': 2.582}, {'end': 2772.437, 'text': "So that's technical courses.", 'start': 2770.976, 'duration': 1.461}, {'end': 2776.761, 'text': 'Flash course ID.', 'start': 2774.639, 'duration': 2.122}, {'end': 2779.763, 'text': 'And then I have to close this.', 'start': 2778.762, 'duration': 1.001}, {'end': 2784.047, 'text': "Now, I'll just link this to the name of the course.", 'start': 2781.605, 'duration': 2.442}, {'end': 2787.81, 'text': "So I'll use all courses dot course name.", 'start': 2784.667, 'duration': 3.143}, {'end': 2789.851, 'text': "Okay, so that's it.", 'start': 2788.97, 'duration': 0.881}, {'end': 2792.946, 'text': "Finally, I'll have to end for So.", 'start': 2790.572, 'duration': 2.374}, {'end': 2800.429, 'text': "to do that, I'll have to do it the same way I've used for so within the curly braces to percentage symbols,", 'start': 2792.946, 'duration': 7.483}, {'end': 2802.791, 'text': 'which is going to contain the end for statement.', 'start': 2800.429, 'duration': 2.362}, {'end': 2804.831, 'text': "I'll save this.", 'start': 2804.191, 'duration': 0.64}, {'end': 2809.473, 'text': "Okay, so now I'll get back to my views function and over here.", 'start': 2806.372, 'duration': 3.101}, {'end': 2811.734, 'text': "I'll have to specify the path of my file.", 'start': 2809.914, 'duration': 1.82}, {'end': 2819.658, 'text': 'So which is within technical courses technical courses directory and the name of my file is courses dot HTML.', 'start': 2811.754, 'duration': 7.904}, {'end': 2823.883, 'text': "So over here, I'll create another variable named context.", 'start': 2820.982, 'duration': 2.901}, {'end': 2829.043, 'text': 'The context is a dictionary mapping template variable name to python objects.', 'start': 2824.903, 'duration': 4.14}, {'end': 2835.404, 'text': "So within this I'll have to store the dictionary of all the elements or all the courses that are present.", 'start': 2830.004, 'duration': 5.4}, {'end': 2836.905, 'text': "So that's AC.", 'start': 2835.925, 'duration': 0.98}, {'end': 2842.426, 'text': 'And now coming towards the return statement.', 'start': 2840.225, 'duration': 2.201}, {'end': 2849.927, 'text': 'So I want to return the template dot render and that will be context and the request.', 'start': 2843.006, 'duration': 6.921}, {'end': 2852.656, 'text': 'So now my views file seems to be ready.', 'start': 2850.854, 'duration': 1.802}, {'end': 2856.959, 'text': "I'll get back to my development server looks like something is missing over here.", 'start': 2853.016, 'duration': 3.943}, {'end': 2860.102, 'text': 'I have the list but I do not have the items.', 'start': 2857.119, 'duration': 2.983}, {'end': 2866.907, 'text': "So let me get back to my courses dot HTML file and check what mistake I've made.", 'start': 2860.942, 'duration': 5.965}, {'end': 2869.029, 'text': 'Okay So here it is.', 'start': 2867.528, 'duration': 1.501}, {'end': 2873.753, 'text': "I'm using the for loop over here where I've used for X in AC.", 'start': 2869.99, 'duration': 3.763}, {'end': 2878.038, 'text': 'So now to actually return the items instead of all courses.', 'start': 2874.534, 'duration': 3.504}, {'end': 2880.02, 'text': "I'm supposed to use X dot course name.", 'start': 2878.138, 'duration': 1.882}, {'end': 2884.085, 'text': "So now let me save this back to my server and I'll refresh this page.", 'start': 2880.04, 'duration': 4.045}, {'end': 2890.853, 'text': 'Okay So here it is as you can see all the courses that are present in my database are returned on my home page.', 'start': 2884.706, 'duration': 6.147}, {'end': 2892.815, 'text': 'So I hope you all have understood to here.', 'start': 2891.433, 'duration': 1.382}, {'end': 2897.993, 'text': 'So now what if the user requests for a course that does not exist on my website?', 'start': 2893.57, 'duration': 4.423}, {'end': 2901.676, 'text': 'in that case, I actually want to raise a 404 error.', 'start': 2897.993, 'duration': 3.683}, {'end': 2903.837, 'text': 'many of you might be aware of the 404 error.', 'start': 2901.676, 'duration': 2.161}, {'end': 2904.498, 'text': 'It is.', 'start': 2903.957, 'duration': 0.541}, {'end': 2906.719, 'text': 'it is the very famous the page not found error.', 'start': 2904.498, 'duration': 2.221}, {'end': 2910.482, 'text': 'Django actually has a function named HTTP 404,', 'start': 2906.719, 'duration': 3.763}], 'summary': 'Creating a django template for courses, using python code within html, and handling 404 errors.', 'duration': 209.23, 'max_score': 2701.252, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc2701252.jpg'}, {'end': 2924.259, 'src': 'embed', 'start': 2891.433, 'weight': 3, 'content': [{'end': 2892.815, 'text': 'So I hope you all have understood to here.', 'start': 2891.433, 'duration': 1.382}, {'end': 2897.993, 'text': 'So now what if the user requests for a course that does not exist on my website?', 'start': 2893.57, 'duration': 4.423}, {'end': 2901.676, 'text': 'in that case, I actually want to raise a 404 error.', 'start': 2897.993, 'duration': 3.683}, {'end': 2903.837, 'text': 'many of you might be aware of the 404 error.', 'start': 2901.676, 'duration': 2.161}, {'end': 2904.498, 'text': 'It is.', 'start': 2903.957, 'duration': 0.541}, {'end': 2906.719, 'text': 'it is the very famous the page not found error.', 'start': 2904.498, 'duration': 2.221}, {'end': 2910.482, 'text': 'Django actually has a function named HTTP 404,', 'start': 2906.719, 'duration': 3.763}, {'end': 2917.066, 'text': "which will allow you to raise this page not found error in case the user requests for something that's not present on your website to do this.", 'start': 2910.482, 'duration': 6.584}, {'end': 2918.747, 'text': "I'll be using the try and accept blocks.", 'start': 2917.146, 'duration': 1.601}, {'end': 2924.259, 'text': "So first I'll write the try block and within this I'll create a variable named course.", 'start': 2919.568, 'duration': 4.691}], 'summary': "In handling non-existent course requests, raise a 404 error using django's http 404 function and try-accept blocks.", 'duration': 32.826, 'max_score': 2891.433, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc2891433.jpg'}, {'end': 3625.563, 'src': 'embed', 'start': 3601.619, 'weight': 4, 'content': [{'end': 3607.942, 'text': "So the first thing I'm going to do over here is add a new variable that will specify the date from when the course has been started.", 'start': 3601.619, 'duration': 6.323}, {'end': 3612.465, 'text': 'I will name it as started from and will use the date and time field of the models class.', 'start': 3607.962, 'duration': 4.503}, {'end': 3625.563, 'text': "So to the all courses class, I'll be adding a new variable named as started from started from and I'll be using the models dot date time field.", 'start': 3613.305, 'duration': 12.258}], 'summary': "Adding a new variable 'started from' to specify course start date using date and time field.", 'duration': 23.944, 'max_score': 3601.619, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc3601619.jpg'}], 'start': 2116.151, 'title': 'Django administration and object handling', 'summary': "Covers important topics such as object representations, object retrieval, and error handling in django's admin, including creating a super user, modifying the admin site, creating views and templates, error handling, and model modifications. it also demonstrates the processes and corrections made during retrieval, and the necessary commands for model modifications.", 'chapters': [{'end': 2239.571, 'start': 2116.151, 'title': 'Django admin and object retrieval', 'summary': "Discusses the importance of object representations in django's admin, demonstrates the process of retrieving and filtering objects, and highlights the errors and corrections made during the retrieval process.", 'duration': 123.42, 'highlights': ["The chapter emphasizes the importance of object representations in Django's admin and provides guidance on retrieving and filtering objects.", "The speaker demonstrates the process of retrieving objects using the 'all' function, encountering errors in the process, and making corrections by removing incorrect syntax.", "The speaker illustrates the use of filtering commands such as 'filter' and 'get' to retrieve specific objects from the database, showcasing the successful retrieval of objects based on specified parameters."]}, {'end': 2432.752, 'start': 2239.571, 'title': 'Working with django admin', 'summary': 'Explains how to create a super user, modify the admin site to make the app modifiable, and add and delete courses from the admin section in django, including creating a super user and modifying the admin site.', 'duration': 193.181, 'highlights': ['The chapter explains how to create a super user, modify the admin site to make the app modifiable, and add and delete courses from the admin section in Django, including creating a super user and modifying the admin site.', 'The process of creating a super user is demonstrated, including entering a username, email address, and password, and then accessing the Django administration site.', 'The steps to modify the admin site to make the app modifiable are detailed, including importing the all courses class into the admin.py file and registering it with the admin site.', 'The addition of courses to the admin section and the process of adding and deleting courses from the admin site are explained, showcasing the functionality of the admin section in Django.']}, {'end': 2890.853, 'start': 2433.252, 'title': 'Creating django views and templates', 'summary': 'Explains the process of creating views and templates in a django application, including defining views, passing parameters, creating templates, linking templates to views, and resolving errors. it also demonstrates the rendering of courses on the home page.', 'duration': 457.601, 'highlights': ['Defining views and passing parameters The speaker explains the process of defining a view for a Django application, passing parameters to the view function, and returning an HTTP response, demonstrating the creation of a detail view function with a course ID parameter.', 'Linking templates to views and resolving errors The speaker demonstrates the process of creating templates within the standard convention, linking templates to views, using Python code within HTML, creating a for loop to render all courses on the home page, and resolving errors in the code.', 'Rendering courses on the home page The speaker shows how to render all the courses present in the database on the home page using a for loop, anchor tags, and the template dot render function, and resolves an error by correcting the variable used in the for loop.']}, {'end': 3583.127, 'start': 2891.433, 'title': 'Django error handling and admin panel setup', 'summary': 'Covers how to handle 404 errors in django using the http 404 function, setting up the admin panel to register classes, and linking course details on the website, including adding functionality to beautify the homepage with html and css.', 'duration': 691.694, 'highlights': ["Handling 404 Errors using HTTP 404 Function Explains using the HTTP 404 function in Django to raise a 'page not found' error when a user requests a course not present on the website.", 'Setting Up Admin Panel and Registering Classes Demonstrates registering the details class in the admin section and adding details to the database directly or via the admin panel.', 'Linking Course Details and Beautifying Homepage with HTML and CSS Illustrates linking course details on the website, including adding functionality to beautify the homepage with HTML and CSS, using the bootstrap framework for design elements.']}, {'end': 4013.204, 'start': 3583.407, 'title': 'Django model modifications', 'summary': 'Covers adding new variables to the models.py file, creating custom methods, modifying variables in classes, and performing necessary commands such as make migrations, migrate, and sql migrate for django model modifications.', 'duration': 429.797, 'highlights': ["The chapter covers adding new variables to the models.py file New variables 'started from' and 'course type' are added to the models.py file to specify the start date of the course and to replace the self-paced and instructor LED variables.", 'Performing necessary commands such as make migrations, migrate, and SQL migrate Commands such as make migrations, migrate, and SQL migrate are executed to apply the changes made to the models and synchronize the database schema.', "Creating custom methods in the all courses class A custom method 'was published recently' is created to describe when the course has been published, using time zone and date time modules."]}], 'duration': 1897.053, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc2116151.jpg', 'highlights': ["The chapter emphasizes the importance of object representations in Django's admin and provides guidance on retrieving and filtering objects.", 'The chapter explains how to create a super user, modify the admin site to make the app modifiable, and add and delete courses from the admin section in Django, including creating a super user and modifying the admin site.', 'Defining views and passing parameters The speaker explains the process of defining a view for a Django application, passing parameters to the view function, and returning an HTTP response, demonstrating the creation of a detail view function with a course ID parameter.', "Handling 404 Errors using HTTP 404 Function Explains using the HTTP 404 function in Django to raise a 'page not found' error when a user requests a course not present on the website.", "The chapter covers adding new variables to the models.py file New variables 'started from' and 'course type' are added to the models.py file to specify the start date of the course and to replace the self-paced and instructor LED variables."]}, {'end': 5030.391, 'segs': [{'end': 4042.42, 'src': 'embed', 'start': 4014.159, 'weight': 0, 'content': [{'end': 4019.703, 'text': 'Migrations are very powerful guys, and they let you change your models over time as you develop your project,', 'start': 4014.159, 'duration': 5.544}, {'end': 4023.326, 'text': 'without the need to delete your database or tables and make new ones.', 'start': 4019.703, 'duration': 3.623}, {'end': 4028.81, 'text': 'It actually specializes in upgrading your database live without losing data.', 'start': 4023.826, 'duration': 4.984}, {'end': 4030.971, 'text': 'So now coming back towards our database.', 'start': 4029.31, 'duration': 1.661}, {'end': 4033.333, 'text': "I'll just show you what's present in my database.", 'start': 4031.212, 'duration': 2.121}, {'end': 4035.755, 'text': "So for that I'll have to use the all function.", 'start': 4033.754, 'duration': 2.001}, {'end': 4037.516, 'text': "So I'll just type all courses.", 'start': 4036.075, 'duration': 1.441}, {'end': 4042.42, 'text': 'So all the objects present in the all courses class will be retrieved.', 'start': 4038.917, 'duration': 3.503}], 'summary': 'Migrations allow live database upgrades without data loss.', 'duration': 28.261, 'max_score': 4014.159, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc4014159.jpg'}, {'end': 4099.526, 'src': 'embed', 'start': 4070.805, 'weight': 1, 'content': [{'end': 4074.269, 'text': "So after this, I'll just run the command all courses dot objects at all.", 'start': 4070.805, 'duration': 3.464}, {'end': 4079.296, 'text': 'So as you can see over here, I have three objects which is python Java and C.', 'start': 4074.99, 'duration': 4.306}, {'end': 4086.358, 'text': "Now like I've already shown you all before in case I want to retrieve just one object which is present in my class.", 'start': 4080.254, 'duration': 6.104}, {'end': 4093.222, 'text': 'All I have to do is type in the same command which is all courses dot objects and instead of the all method.', 'start': 4086.678, 'duration': 6.544}, {'end': 4099.526, 'text': "I'll have to use the get method and I'll just specify the primary key to be one and then I'll hit enter.", 'start': 4093.602, 'duration': 5.924}], 'summary': 'A demonstration of retrieving objects using commands, showing three objects: python, java, and c.', 'duration': 28.721, 'max_score': 4070.805, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc4070805.jpg'}, {'end': 4293.12, 'src': 'embed', 'start': 4264.938, 'weight': 2, 'content': [{'end': 4268.721, 'text': "Okay, looks like I've made some mistake within my models over here.", 'start': 4264.938, 'duration': 3.783}, {'end': 4276.587, 'text': "So let me just check I've imported the date time module and I've imported the time zone method as well.", 'start': 4269.642, 'duration': 6.945}, {'end': 4284.253, 'text': "So, as you can see over here, instead of making use of the date time field, I've made use of the date field,", 'start': 4278.208, 'duration': 6.045}, {'end': 4290.718, 'text': "and that is why it is throwing an error over here, saying can't compare date time dot date time to date time dot date.", 'start': 4284.253, 'duration': 6.465}, {'end': 4293.12, 'text': 'So let me just make that change over here.', 'start': 4291.499, 'duration': 1.621}], 'summary': 'Identified mistake in model: used date instead of date time field.', 'duration': 28.182, 'max_score': 4264.938, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc4264938.jpg'}, {'end': 4601.462, 'src': 'embed', 'start': 4565.385, 'weight': 3, 'content': [{'end': 4567.206, 'text': "Okay, so I hope everyone's clear till here.", 'start': 4565.385, 'duration': 1.821}, {'end': 4572.788, 'text': "So one thing that's very important that we learned over here is while making changes to your models.", 'start': 4567.706, 'duration': 5.082}, {'end': 4581.292, 'text': 'You will have to make migrations and then migrate it and then use the SQL migrate command with the ID that is generated by the migrate command.', 'start': 4573.068, 'duration': 8.224}, {'end': 4588.335, 'text': 'So, anytime you make changes, you will have to do all these three things, even if you make some mistake within the models.', 'start': 4581.612, 'duration': 6.723}, {'end': 4592.357, 'text': "don't be scared, because each time you make a mistake, you get to learn even more from that.", 'start': 4588.335, 'duration': 4.022}, {'end': 4601.462, 'text': 'So as we all know my details class is interlinked to my all courses class, which means my details class is derived from my all courses class.', 'start': 4592.975, 'duration': 8.487}], 'summary': 'When making changes to models, make migrations, migrate, and use sql migrate command with the generated id. the details class is interlinked to the all courses class.', 'duration': 36.077, 'max_score': 4565.385, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc4565385.jpg'}, {'end': 4632.13, 'src': 'embed', 'start': 4602.003, 'weight': 4, 'content': [{'end': 4606.727, 'text': 'Now this connection is actually made through the primary key and the foreign key relationships.', 'start': 4602.003, 'duration': 4.724}, {'end': 4614.093, 'text': "So before making any more changes over here, what I'm going to do is get back to my development server and over here.", 'start': 4607.768, 'duration': 6.325}, {'end': 4615.795, 'text': "I'll go to the admin section.", 'start': 4614.594, 'duration': 1.201}, {'end': 4621.407, 'text': "Now I'll get into the all courses that are present on my website and over here.", 'start': 4617.046, 'duration': 4.361}, {'end': 4625.708, 'text': 'as you can see, I had three courses, which was C, Java and python.', 'start': 4621.407, 'duration': 4.301}, {'end': 4632.13, 'text': 'now, when I click on one of these, you see that previously only the course name and the instructor name was shown,', 'start': 4625.708, 'duration': 6.422}], 'summary': 'The admin section displays three courses: c, java, and python.', 'duration': 30.127, 'max_score': 4602.003, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc4602003.jpg'}, {'end': 4859.486, 'src': 'embed', 'start': 4829.157, 'weight': 6, 'content': [{'end': 4831.217, 'text': "Okay, so I hope everyone's understood till here.", 'start': 4829.157, 'duration': 2.06}, {'end': 4836.278, 'text': "So now I'm done with the models and I've done with the database now.", 'start': 4831.997, 'duration': 4.281}, {'end': 4838.979, 'text': "I'll have to modify my views and my templates.", 'start': 4836.538, 'duration': 2.441}, {'end': 4842.679, 'text': "So to do that, I'll go to my views file and over here.", 'start': 4839.679, 'duration': 3}, {'end': 4845.68, 'text': "I'll make some modifications with regards to the changes.", 'start': 4842.759, 'duration': 2.921}, {'end': 4846.76, 'text': "I've made to my models.", 'start': 4845.78, 'duration': 0.98}, {'end': 4851.52, 'text': "So over here I'll be creating a new function named your choice,", 'start': 4847.757, 'duration': 3.763}, {'end': 4856.343, 'text': 'that will hold the users choice and will save it after the user has selected that particular type.', 'start': 4851.52, 'duration': 4.823}, {'end': 4859.486, 'text': 'Of course, he intends to enroll for so over here.', 'start': 4856.383, 'duration': 3.103}], 'summary': "Modifying views to create a new function named 'your choice' to hold and save user's selection for enrollment.", 'duration': 30.329, 'max_score': 4829.157, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc4829157.jpg'}, {'end': 4906.609, 'src': 'embed', 'start': 4875.517, 'weight': 5, 'content': [{'end': 4876.458, 'text': "It's not been highlighted.", 'start': 4875.517, 'duration': 0.941}, {'end': 4882.053, 'text': "So like I've already told you all I'm going to create a new function which will be the your choice function.", 'start': 4877.31, 'duration': 4.743}, {'end': 4891.759, 'text': "Now this function will actually store the user's choice and it will reflect the same after the user has made his choice between instructor LED and the self-paced options.", 'start': 4882.433, 'duration': 9.326}, {'end': 4894.261, 'text': "So now I'll be defining the function.", 'start': 4892.74, 'duration': 1.521}, {'end': 4896.863, 'text': "So it's DF your choice.", 'start': 4895.101, 'duration': 1.762}, {'end': 4900.945, 'text': "And as usual, I'll have to pass the request parameter.", 'start': 4898.243, 'duration': 2.702}, {'end': 4906.609, 'text': "And I'll have to specify the course ID.", 'start': 4904.608, 'duration': 2.001}], 'summary': "Creating a new 'your choice' function to store and reflect user's choice between instructor led and self-paced options.", 'duration': 31.092, 'max_score': 4875.517, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc4875517.jpg'}, {'end': 4999.931, 'src': 'embed', 'start': 4962.768, 'weight': 7, 'content': [{'end': 4965.149, 'text': "and within this I'll just specify this as the choice.", 'start': 4962.768, 'duration': 2.381}, {'end': 4967.491, 'text': 'So now done with the try block.', 'start': 4966.17, 'duration': 1.321}, {'end': 4971.373, 'text': "I'll have to go to the accept block in case there is a key error.", 'start': 4967.571, 'duration': 3.802}, {'end': 4977.797, 'text': "I'll use the method key error and all courses dot does not exist.", 'start': 4971.854, 'duration': 5.943}, {'end': 4982.04, 'text': 'Now make use of the return statement with the render method.', 'start': 4979.518, 'duration': 2.522}, {'end': 4987.263, 'text': 'Remember guys that the render method is always a shortcut to the HTTP response method.', 'start': 4983.22, 'duration': 4.043}, {'end': 4999.931, 'text': 'So within this the request parameter again and then all courses slash details or detail dot HTML, which is the name of my target file after this.', 'start': 4987.743, 'duration': 12.188}], 'summary': 'Using key error method, returning render method for http response with target file details.html', 'duration': 37.163, 'max_score': 4962.768, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc4962768.jpg'}], 'start': 4014.159, 'title': 'Django database management and user choice function', 'summary': 'Explores django database management, covering migrations, database retrieval and updates, date comparison errors, model changes, data entry, sql migrate command, primary and foreign key relationships, and modifying views and templates for user choice function.', 'chapters': [{'end': 4564.678, 'start': 4014.159, 'title': 'Django database management', 'summary': 'Discusses the power of migrations in django, showcasing the process of database management, including retrieving and updating objects, handling date comparison errors, and performing migrations to modify the database structure.', 'duration': 550.519, 'highlights': ['The chapter discusses the power of migrations in Django, showcasing the process of database management, including retrieving and updating objects, handling date comparison errors, and performing migrations to modify the database structure.', 'Migrations in Django allow for live database upgrades without data loss, enabling changes to models without deleting and recreating tables.', "The speaker demonstrates the process of retrieving all objects from a class using the 'all' function, revealing the presence of three objects: Python, Java, and C.", "The 'get' method in Django is employed to retrieve a single object from a class, showcasing the retrieval of the object with a primary key of one, which is 'Python'.", "The 'filter' method is utilized to retrieve objects based on specified conditions, demonstrating the retrieval of the 'Python' object when the primary key is set to one.", "The use of Django's timezone method is illustrated, enabling the retrieval of objects published in the current year by comparing with the 'started from' attribute in the class.", "An error is encountered while attempting to compare datetime objects, attributed to a mistake in the models where the 'datetime' field is used instead of 'datetimefield'.", "The process of making and applying migrations in Django is detailed, involving the use of 'make migrations' and 'migrate' commands to update the database structure.", 'The speaker encounters errors related to variable types in the models, leading to the removal and addition of elements to prevent encountering the same error again.', "The demonstration concludes with the successful retrieval of an object from the database and the verification of its recent publication using the 'was published recently' method."]}, {'end': 4828.397, 'start': 4565.385, 'title': 'Managing model changes and data entry', 'summary': 'Covers the process of making migrations and migrating changes to models, the use of sql migrate command with generated id, relationship between classes through primary and foreign key, and creating and counting options for course types self-paced and instructor-led.', 'duration': 263.012, 'highlights': ['Explaining the process of making migrations and migrating changes to models, emphasizing the need to use the SQL migrate command with the generated ID.', 'Detailing the interlinked relationship between classes through primary and foreign key relationships.', 'Demonstrating the creation of course type options self-paced and instructor-led and counting the options for each course.']}, {'end': 5030.391, 'start': 4829.157, 'title': 'Modifying views and templates for user choice function', 'summary': "Discusses modifying views and templates to create a new function 'your choice' that stores and reflects the user's choice between instructor-led and self-paced options, using the get object or 404 method and handling key errors. it also covers the error message to display in case of an invalid option.", 'duration': 201.234, 'highlights': ["Creating a new function named 'your choice' to store and reflect the user's choice between instructor-led and self-paced options, using the get object or 404 method and specifying the error message to display in case of an invalid option.", 'Making modifications in the views file to accommodate changes made to the models, including importing the get object or 404 method from the Django dot shortcuts module.', 'Using the render method as a shortcut to the HTTP response method and specifying the error message to display in case of an invalid option.']}], 'duration': 1016.232, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc4014159.jpg', 'highlights': ['Migrations in Django enable live database upgrades without data loss, allowing changes to models without table recreation.', "Demonstrates retrieving all objects from a class using the 'all' function, revealing the presence of three objects: Python, Java, and C.", "Encounters error while comparing datetime objects due to a mistake in the models, using 'datetime' field instead of 'datetimefield'.", "Details the process of making and applying migrations in Django, involving 'make migrations' and 'migrate' commands.", 'Explains the interlinked relationship between classes through primary and foreign key relationships.', "Creates a new function named 'your choice' to store and reflect the user's choice between instructor-led and self-paced options.", 'Makes modifications in the views file to accommodate changes made to the models, including importing the get object or 404 method.', 'Uses the render method as a shortcut to the HTTP response method and specifies the error message to display in case of an invalid option.']}, {'end': 5805.33, 'segs': [{'end': 5061.481, 'src': 'embed', 'start': 5031.892, 'weight': 0, 'content': [{'end': 5040.318, 'text': "So after this I'll have to use the else block and then if in case he's made the selection selected course type dot your choice.", 'start': 5031.892, 'duration': 8.426}, {'end': 5044.521, 'text': 'When the user has made some selection.', 'start': 5042.659, 'duration': 1.862}, {'end': 5052.506, 'text': "I want to set the value of the selected course type to be true and then I'll just save this using the save method.", 'start': 5044.881, 'duration': 7.625}, {'end': 5056.898, 'text': 'so selected selected course type dot save.', 'start': 5052.506, 'duration': 4.392}, {'end': 5061.481, 'text': "And then I'll just make use of the return render method again.", 'start': 5058.86, 'duration': 2.621}], 'summary': 'Using else block and setting selected course type to true, then saving and rendering.', 'duration': 29.589, 'max_score': 5031.892, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc5031892.jpg'}, {'end': 5124.182, 'src': 'embed', 'start': 5091.38, 'weight': 1, 'content': [{'end': 5096.202, 'text': "So I'll import that and one small change within the detail class.", 'start': 5091.38, 'duration': 4.822}, {'end': 5101.344, 'text': "I'll just clear this and over here.", 'start': 5097.362, 'duration': 3.982}, {'end': 5111.689, 'text': "I'll just say course equals get object of 104 and over here will be all courses and the primary key.", 'start': 5101.504, 'duration': 10.185}, {'end': 5113.793, 'text': 'which is equal to the course ID.', 'start': 5112.332, 'duration': 1.461}, {'end': 5120.779, 'text': "So I've made use of c-o-u-s-e and not c-o-u-r-s-e and everywhere.", 'start': 5115.475, 'duration': 5.304}, {'end': 5122.44, 'text': "I've been using the same spelling.", 'start': 5120.939, 'duration': 1.501}, {'end': 5124.182, 'text': 'So just be careful, guys.', 'start': 5122.64, 'duration': 1.542}], 'summary': 'Updated detail class to use correct spelling for course id, ensuring consistency throughout the code.', 'duration': 32.802, 'max_score': 5091.38, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc5091380.jpg'}, {'end': 5234.798, 'src': 'embed', 'start': 5212.436, 'weight': 2, 'content': [{'end': 5221.863, 'text': "what I'm going to do is add on an image of this course and then I'll be creating a form for the user to select between the self-paced and the instructor LED options.", 'start': 5212.436, 'duration': 9.427}, {'end': 5224.605, 'text': "So now to do that, I'll get back to pie charm.", 'start': 5222.604, 'duration': 2.001}, {'end': 5229.169, 'text': "And over here, I'll just insert some images for my courses.", 'start': 5225.886, 'duration': 3.283}, {'end': 5232.371, 'text': "So the first thing I'm going to do is make use of the image tag.", 'start': 5229.889, 'duration': 2.482}, {'end': 5234.798, 'text': 'and the source I already have it somewhere.', 'start': 5233.157, 'duration': 1.641}], 'summary': 'Creating a form for user to select course options, adding images to courses.', 'duration': 22.362, 'max_score': 5212.436, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc5212436.jpg'}, {'end': 5783.417, 'src': 'embed', 'start': 5716.18, 'weight': 3, 'content': [{'end': 5724.943, 'text': "I've given is choice, which means when somebody selects one of the radio buttons and submits the form, it will send a post data saying choice,", 'start': 5716.18, 'duration': 8.763}, {'end': 5728.745, 'text': 'which is equal to hash, where hash is the ID of the selected choice.', 'start': 5724.943, 'duration': 3.802}, {'end': 5732.41, 'text': 'Now, this is the basic concept of all HTML forms.', 'start': 5729.389, 'duration': 3.021}, {'end': 5743.175, 'text': "So we've set the forms action to the URL as technical courses, colon, your choice and choice dot ID, and the method we've used is post.", 'start': 5733.031, 'duration': 10.144}, {'end': 5749.498, 'text': 'using the post method is very important because the act of submitting this form will alter the data on the server side.', 'start': 5743.175, 'duration': 6.323}, {'end': 5756.962, 'text': "Whenever you create a form that alters the data on the server side, you'll have to make use of the post method and not the get method.", 'start': 5750.079, 'duration': 6.883}, {'end': 5761.475, 'text': "So you all have noticed that I've made use of the for loop dot counter method.", 'start': 5757.785, 'duration': 3.69}, {'end': 5766.208, 'text': 'Now this actually indicates how many times the for tag has gone through its loop.', 'start': 5761.896, 'duration': 4.312}, {'end': 5772.315, 'text': 'So since we are creating a post form which will have effect on modifying the data in our database.', 'start': 5766.974, 'duration': 5.341}, {'end': 5776.216, 'text': 'We need to worry about the cross site request forgeries.', 'start': 5772.635, 'duration': 3.581}, {'end': 5783.417, 'text': "Thankfully, you don't have to worry too hard, because Django comes with a very easy to use system for protecting against it.", 'start': 5776.696, 'duration': 6.721}], 'summary': 'Using post method in html form to send choice data and protect against cross site request forgeries.', 'duration': 67.237, 'max_score': 5716.18, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc5716180.jpg'}], 'start': 5031.892, 'title': 'Updating views and creating forms', 'summary': 'Covers updating views and templates, including setting values, saving methods, importing classes, and making changes to details.html page; also creating a form in python and html, emphasizing the importance of using the post method for data alteration and protection against cross-site request forgeries.', 'chapters': [{'end': 5328.062, 'start': 5031.892, 'title': 'Updating views and templates', 'summary': 'Covers the process of updating views and templates, including setting values, saving methods, importing classes, and making changes to details.html page by adding images and creating a form for course options.', 'duration': 296.17, 'highlights': ['The user has made some selection, setting the value of the selected course type to be true and saving it using the save method. Setting value of selected course type, using save method', 'Importing the details class and making a small change within the detail class by specifying the course ID and making spelling corrections. Importing details class, specifying course ID, correcting spelling', 'Adding an image of the course and creating a form for the user to select between self-paced and instructor LED options within the details.html page. Adding course image, creating form for course options']}, {'end': 5805.33, 'start': 5328.382, 'title': 'Creating a form in python and html', 'summary': 'Covers creating a form in python and html, including using if statements, the form tag, csrf token, for loop, and csrf token template tag, among others, to ensure data alteration and protection against cross site request forgeries, with emphasis on the importance of using the post method for altering data.', 'duration': 476.948, 'highlights': ['Using the post method is very important because the act of submitting this form will alter the data on the server side. Emphasizes the importance of using the post method for altering data on the server side.', "Django comes with a very easy to use system for protecting against cross site request forgeries, and all post forms that are targeted at internal URLs should use the CSRF token template tag. Highlights Django's system for protecting against cross site request forgeries and the necessity of using the CSRF token template tag for post forms targeted at internal URLs.", 'The for loop dot counter method indicates how many times the for tag has gone through its loop, and it is used for creating a post form that will have an effect on modifying the data in the database. Explains the purpose of the for loop dot counter method in creating a post form that modifies data in the database.', "The details.html page has created a radio button for each option, and the value of each radio button is the associated course type ID, with the name of each radio button being 'choice', and the form's action is set to the URL as 'technical courses: your choice' using the post method. Describes the creation of radio buttons on the details.html page and the setting of the form's action to the URL 'technical courses: your choice' using the post method.", "The form's action is set to the URL as 'technical courses: your choice' and choice dot ID, and the method used is post, which is crucial for altering the data on the server side. Explains the setting of the form's action to the URL 'technical courses: your choice' and the importance of using the post method for altering data on the server side."]}], 'duration': 773.438, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc5031892.jpg', 'highlights': ['Setting value of selected course type, using save method', 'Importing details class, specifying course ID, correcting spelling', 'Adding course image, creating form for course options', 'Emphasizes the importance of using the post method for altering data on the server side', "Highlights Django's system for protecting against cross site request forgeries and the necessity of using the CSRF token template tag for post forms targeted at internal URLs", 'Explains the purpose of the for loop dot counter method in creating a post form that modifies data in the database', "Describes the creation of radio buttons on the details.html page and the setting of the form's action to the URL 'technical courses: your choice' using the post method", "Explains the setting of the form's action to the URL 'technical courses: your choice' and the importance of using the post method for altering data on the server side"]}, {'end': 6924.618, 'segs': [{'end': 5833.867, 'src': 'embed', 'start': 5806.511, 'weight': 0, 'content': [{'end': 5809.955, 'text': 'So before moving on to show you all how to write tests for our website.', 'start': 5806.511, 'duration': 3.444}, {'end': 5813.359, 'text': "I'm going to be sharing some important details about testing.", 'start': 5810.476, 'duration': 2.883}, {'end': 5822.394, 'text': 'So first of all, what are automated tests? Tests are simple routines that check the operation of your code testing operates at different levels.', 'start': 5813.92, 'duration': 8.474}, {'end': 5828.681, 'text': 'Some tests might apply to a tiny detail while others examine the overall operation of the software.', 'start': 5822.834, 'duration': 5.847}, {'end': 5833.867, 'text': "So that is something which is same as what we've done while using our python shell.", 'start': 5829.342, 'duration': 4.525}], 'summary': 'Automated tests are routines that check code operation at different levels, examining details and overall software performance.', 'duration': 27.356, 'max_score': 5806.511, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc5806511.jpg'}, {'end': 5873.04, 'src': 'embed', 'start': 5847.55, 'weight': 1, 'content': [{'end': 5855.893, 'text': 'You create a set of test once and then, as you make changes to your app, you can check that your code still works as originally intended,', 'start': 5847.55, 'duration': 8.343}, {'end': 5859.554, 'text': 'without having to perform time-consuming manual testing again and again.', 'start': 5855.893, 'duration': 3.661}, {'end': 5862.095, 'text': 'So why do you need to create tests?', 'start': 5860.354, 'duration': 1.741}, {'end': 5865.927, 'text': "you may feel that you've done quite enough on your plate.", 'start': 5862.961, 'duration': 2.966}, {'end': 5873.04, 'text': 'just learning python and Django and having yet another thing to learn may seem overwhelming and perhaps unnecessary.', 'start': 5865.927, 'duration': 7.113}], 'summary': 'Creating tests allows for efficient code validation and reduces manual testing effort.', 'duration': 25.49, 'max_score': 5847.55, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc5847550.jpg'}, {'end': 5972.047, 'src': 'embed', 'start': 5930.789, 'weight': 2, 'content': [{'end': 5934.911, 'text': "That's especially true when automated tests could do this for you in seconds.", 'start': 5930.789, 'duration': 4.122}, {'end': 5941.634, 'text': "If something's gone wrong tests will also assist you in identifying the code that's causing the unexpected behavior.", 'start': 5935.331, 'duration': 6.303}, {'end': 5948.482, 'text': 'Sometimes it may seem a code to tear yourself away from your productive, creative programming work,', 'start': 5942.381, 'duration': 6.101}, {'end': 5955.664, 'text': 'to face the unglamorous and unexciting business of writing test, particularly when you know your code is working properly.', 'start': 5948.482, 'duration': 7.182}, {'end': 5966.666, 'text': 'However, the task of writing tests is lot more fulfilling than spending hours of testing your application manually or trying to identify the cause of the newly introduced problems.', 'start': 5956.204, 'duration': 10.462}, {'end': 5968.846, 'text': 'Hold on tests.', 'start': 5967.566, 'duration': 1.28}, {'end': 5970.667, 'text': "Don't just identify the problems.", 'start': 5968.966, 'duration': 1.701}, {'end': 5972.047, 'text': 'They also prevent them.', 'start': 5970.927, 'duration': 1.12}], 'summary': 'Automated tests save time, identify issues, and prevent problems.', 'duration': 41.258, 'max_score': 5930.789, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc5930789.jpg'}, {'end': 6025.125, 'src': 'embed', 'start': 5993.115, 'weight': 5, 'content': [{'end': 5999.439, 'text': 'they light up your code from the inside and when something goes wrong, they focus the light on the part that goes wrong.', 'start': 5993.115, 'duration': 6.324}, {'end': 6002.081, 'text': "Even if you hadn't even realized it had gone wrong.", 'start': 5999.819, 'duration': 2.262}, {'end': 6005.315, 'text': 'Tests also make your code more attractive.', 'start': 6002.754, 'duration': 2.561}, {'end': 6008.717, 'text': 'You might have created a brilliant piece of software,', 'start': 6005.816, 'duration': 2.901}, {'end': 6015.741, 'text': 'but you will find that many other developers will simply refuse to look at it because it lacks tests without tests.', 'start': 6008.717, 'duration': 7.024}, {'end': 6016.781, 'text': "They won't trust it.", 'start': 6015.941, 'duration': 0.84}, {'end': 6025.125, 'text': "According to Jacob Kaplan Moss, one of Django's original developers, code without tests is broken by design.", 'start': 6017.762, 'duration': 7.363}], 'summary': 'Tests light up code issues, make it attractive, and build trust. code without tests is broken by design.', 'duration': 32.01, 'max_score': 5993.115, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc5993115.jpg'}, {'end': 6526.934, 'src': 'embed', 'start': 6477.68, 'weight': 7, 'content': [{'end': 6485.602, 'text': "I'll type in the command python manage dot py test followed by the name of my application, which is technical courses.", 'start': 6477.68, 'duration': 7.922}, {'end': 6497.336, 'text': 'So what exactly happened over here is this the manage.py test command actually looked for the all courses application.', 'start': 6489.454, 'duration': 7.882}, {'end': 6502.037, 'text': 'after that it found a subclass of the Django dot test dot test case class.', 'start': 6497.336, 'duration': 4.701}, {'end': 6505.298, 'text': 'it then created a special database for the purpose of testing.', 'start': 6502.037, 'duration': 3.261}, {'end': 6510.559, 'text': 'then looked for the test methods, the ones whose name begin with the test in the function.', 'start': 6505.298, 'duration': 5.261}, {'end': 6512.179, 'text': 'test was published recently.', 'start': 6510.559, 'duration': 1.62}, {'end': 6519.021, 'text': 'with future course it created an all courses instance whose start date is 30 days in the future.', 'start': 6512.179, 'duration': 6.842}, {'end': 6526.934, 'text': 'and then using the assert is method it discovered that the was published recently returns true though.', 'start': 6520.251, 'duration': 6.683}], 'summary': "Ran 'python manage.py test' on technical courses; created test database, executed test methods, and confirmed 'was published recently' returns true.", 'duration': 49.254, 'max_score': 6477.68, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc6477680.jpg'}, {'end': 6623.944, 'src': 'embed', 'start': 6592.783, 'weight': 8, 'content': [{'end': 6596.245, 'text': "So it's python manage dot py test technical courses.", 'start': 6592.783, 'duration': 3.462}, {'end': 6604.635, 'text': "So as you can see over here unlike the previous result, I've got an okay, which means I've actually fixed the bug.", 'start': 6597.972, 'duration': 6.663}, {'end': 6612.218, 'text': "So basically what I've done over here is identified the bug and I wrote a code that exposes it and corrected the bug in the code.", 'start': 6605.475, 'duration': 6.743}, {'end': 6614.84, 'text': 'So my test passes.', 'start': 6612.959, 'duration': 1.881}, {'end': 6623.944, 'text': "generally. many other things might go wrong with our application in the future, but we can make sure that we don't inadvertently reintroduce this bug,", 'start': 6614.84, 'duration': 9.104}], 'summary': 'Identified and fixed a bug in code, ensuring successful test pass.', 'duration': 31.161, 'max_score': 6592.783, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc6592783.jpg'}, {'end': 6868.372, 'src': 'embed', 'start': 6825.815, 'weight': 10, 'content': [{'end': 6833.958, 'text': "In fact, that was a simple example of test-driven development, but it doesn't really matter in which order you do the work in our first test.", 'start': 6825.815, 'duration': 8.143}, {'end': 6838.18, 'text': 'We focused closely on the internal behavior of the code for this test.', 'start': 6834.038, 'duration': 4.142}, {'end': 6844.882, 'text': 'We want to check its behavior as it would be experienced by a user through a web browser before we try to fix anything.', 'start': 6838.28, 'duration': 6.602}, {'end': 6849.464, 'text': "Let's have a look at the tools at our disposal the Django test client.", 'start': 6845.162, 'duration': 4.302}, {'end': 6855.601, 'text': 'Django provides a test client to simulate a user interacting with the code at the view level.', 'start': 6850.396, 'duration': 5.205}, {'end': 6859.924, 'text': 'We can use this in the tests.py or even in the shell.', 'start': 6856.461, 'duration': 3.463}, {'end': 6863.768, 'text': "So first I'm going to start with the shell again here.", 'start': 6860.685, 'duration': 3.083}, {'end': 6868.372, 'text': "I actually need to do a couple of things that won't be necessary in the tests.py file.", 'start': 6863.928, 'duration': 4.444}], 'summary': 'Introduction to test-driven development and use of django test client for simulating user interaction.', 'duration': 42.557, 'max_score': 6825.815, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc6825815.jpg'}], 'start': 5806.511, 'title': 'Automated testing basics', 'summary': 'Introduces the concept of automated testing, emphasizing its time-saving benefits, code functionality, and efficient code maintenance, with a focus on test-driven development and writing tests for an application in django.', 'chapters': [{'end': 5907.698, 'start': 5806.511, 'title': 'Automated testing basics', 'summary': 'Introduces the concept of automated testing, explaining its importance in ensuring code functionality and how it can save time in software development, highlighting the benefits of creating automated tests for efficient code maintenance and providing a foundation for learning testing.', 'duration': 101.187, 'highlights': ['Automated tests are routines that check the operation of code at different levels, providing a way to ensure that code functions as intended and operates correctly, offering a systematic approach to verifying code behavior.', 'Creating a set of automated tests allows for checking that code still works as originally intended, saving time by eliminating the need for repetitive manual testing during app changes, thus increasing efficiency in code maintenance.', 'Learning automated testing can be beneficial for those continuing with Django programming, as it provides a foundation for efficient code maintenance and can save time up to a certain point, offering a systematic approach to verifying code behavior.']}, {'end': 6292.997, 'start': 5907.978, 'title': 'Importance of automated testing in software development', 'summary': 'Emphasizes the importance of automated testing in software development, highlighting the time-saving benefits, identification of unexpected behavior, code visibility, and its impact on collaboration and trust among developers, with a focus on the strategy of test-driven development and the process of writing the first test for an application.', 'duration': 385.019, 'highlights': ["Automated tests could do the work of running code functionality with 20 different variations of test data in seconds, saving time and ensuring the code's integrity. Running code functionality with 20 different variations of test data manually could be time-consuming, but automated tests can perform this task in seconds.", 'Tests assist in identifying the code causing unexpected behavior, making the task of writing tests more fulfilling than spending hours testing the application manually or trying to identify the cause of newly introduced problems. Tests not only identify the code causing unexpected behavior but also make the task of writing tests more fulfilling than spending hours testing the application manually or trying to identify the cause of newly introduced problems.', 'Tests make the code more attractive and trustworthy to other developers, as code without tests is considered broken by design, and developers often require tests to take software seriously. Tests make the code more attractive and trustworthy to other developers, as code without tests is considered broken by design, and tests are often required for other developers to take software seriously.', "Tests guarantee that colleagues don't inadvertently break one's code and vice versa, promoting collaboration and preventing unintentional code breakage within teams. Tests guarantee that colleagues don't inadvertently break one's code and vice versa, promoting collaboration and preventing unintentional code breakage within teams.", "Writing tests earlier, such as following test-driven development, formalizes the problem and can be beneficial, even if one decides to write tests later, as it's never too late to get started. Writing tests earlier, such as following test-driven development, formalizes the problem and can be beneficial, even if one decides to write tests later, as it's never too late to get started."]}, {'end': 6924.618, 'start': 6293.849, 'title': 'Automated testing in django', 'summary': "Discusses the process of writing automated tests in django, including importing modules, creating test cases, identifying and fixing bugs, and using the django test client to simulate user interactions, ultimately ensuring the application's functionality and preventing the reintroduction of bugs.", 'duration': 630.769, 'highlights': ['The manage.py test command looked for the all courses application, found a subclass of the Django test case class, and created a special database for testing, then checked the test methods and identified the failure occurrence. The manage.py test command creates a special database for testing and checks the test methods to identify any failures.', "Identified a bug, wrote code to expose it, and corrected the bug, resulting in a passing test to ensure the bug is fixed and doesn't reappear in the future. Identified and fixed a bug in the code, ensuring it doesn't reappear in the future.", "Added two more test methods to comprehensively test the behavior of the 'was published recently' method, ensuring the method returns sensible values for past, recent, and future courses. Added comprehensive tests to ensure the 'was published recently' method returns sensible values for different scenarios.", 'Discussed the process of test-driven development, emphasizing the importance of writing tests first to focus on the internal behavior of the code and user experience before fixing anything. Emphasized the importance of test-driven development and writing tests to focus on the internal behavior of the code and user experience before making fixes.', 'Explained the use of the Django test client to simulate user interactions with the code at the view level, and the preparation steps required to utilize the test client. Explained the use of the Django test client to simulate user interactions and the necessary preparation steps.']}], 'duration': 1118.107, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc5806511.jpg', 'highlights': ['Automated tests ensure code functions as intended, offering a systematic approach to verifying code behavior.', 'Creating automated tests saves time by eliminating the need for repetitive manual testing during app changes, increasing efficiency in code maintenance.', 'Learning automated testing provides a foundation for efficient code maintenance and can save time, offering a systematic approach to verifying code behavior.', 'Automated tests run code functionality with 20 different variations of test data in seconds, saving time and ensuring code integrity.', 'Tests assist in identifying the code causing unexpected behavior, making the task of writing tests more fulfilling than manual testing.', 'Tests make the code more attractive and trustworthy to other developers, preventing unintentional code breakage within teams.', 'Writing tests earlier formalizes the problem and can be beneficial, even if one decides to write tests later.', 'The manage.py test command creates a special database for testing and checks the test methods to identify any failures.', "Identified and fixed a bug in the code, ensuring it doesn't reappear in the future.", "Added comprehensive tests to ensure the 'was published recently' method returns sensible values for different scenarios.", 'Emphasized the importance of test-driven development and writing tests to focus on the internal behavior of the code and user experience before making fixes.', 'Explained the use of the Django test client to simulate user interactions and the necessary preparation steps.']}, {'end': 8855.921, 'segs': [{'end': 7045.89, 'src': 'embed', 'start': 7020.765, 'weight': 0, 'content': [{'end': 7028.068, 'text': "It's used to describe the structure of web pages using markup the HTML structure HTML tags have two main types.", 'start': 7020.765, 'duration': 7.303}, {'end': 7036.23, 'text': "That's block level and inline tags block level elements take up the full available space and always start a new line in the document.", 'start': 7028.268, 'duration': 7.962}, {'end': 7039.811, 'text': 'For example the tags including the headings and the paragraphs.', 'start': 7036.55, 'duration': 3.261}, {'end': 7045.89, 'text': 'Inline elements only take up as much space as they need and do not start in a new line on the page.', 'start': 7040.646, 'duration': 5.244}], 'summary': 'Html uses block and inline tags to structure web pages.', 'duration': 25.125, 'max_score': 7020.765, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc7020765.jpg'}, {'end': 7427.121, 'src': 'embed', 'start': 7400.501, 'weight': 1, 'content': [{'end': 7409.55, 'text': "Following that we've seen the various files that Django created for us along with the project, namely the manage.py, settings.py, init.py,", 'start': 7400.501, 'duration': 9.049}, {'end': 7415.556, 'text': 'wsgi.py and the urls.py files, and then using the manage.py file.', 'start': 7409.55, 'duration': 6.006}, {'end': 7422.943, 'text': "We've got a development server running the next step was creating a first app using python manage.py startup command.", 'start': 7415.756, 'duration': 7.187}, {'end': 7427.121, 'text': "After that we've seen how to create our models views and templates.", 'start': 7423.678, 'duration': 3.443}], 'summary': 'Introduced django files, created a first app, and developed models, views, and templates.', 'duration': 26.62, 'max_score': 7400.501, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc7400501.jpg'}, {'end': 7668.088, 'src': 'embed', 'start': 7620.644, 'weight': 2, 'content': [{'end': 7625.409, 'text': 'Django is pronounced as jang-o make sure to keep the D as silent.', 'start': 7620.644, 'duration': 4.765}, {'end': 7629.646, 'text': 'Another very common question is that if Django is stable.', 'start': 7626.244, 'duration': 3.402}, {'end': 7631.947, 'text': "Yes, it's quite stable.", 'start': 7630.106, 'duration': 1.841}, {'end': 7637.869, 'text': 'companies like discuss, Instagram, Pinterest and Mozilla have been using Django for many years.', 'start': 7631.947, 'duration': 5.922}, {'end': 7643.172, 'text': 'sites built on Django have weathered traffic spikes of over 50, 000 hits per second.', 'start': 7637.869, 'duration': 5.303}, {'end': 7645.653, 'text': 'Okay, so now moving on.', 'start': 7644.072, 'duration': 1.581}, {'end': 7649.091, 'text': 'Many people also ask if Django can scale.', 'start': 7646.428, 'duration': 2.663}, {'end': 7658.099, 'text': 'Yes compared to the development time hardware is cheap and so Django is designed to take advantage of as much hardware as you can throw on it.', 'start': 7649.591, 'duration': 8.508}, {'end': 7665.546, 'text': 'Django uses a shared nothing architecture, which means you can add hardware at any level, that is, database servers,', 'start': 7658.119, 'duration': 7.427}, {'end': 7668.088, 'text': 'caching servers or web applications or servers.', 'start': 7665.546, 'duration': 2.542}], 'summary': 'Django is stable and used by companies like discuss, instagram, pinterest, and mozilla. sites built on django have weathered traffic spikes of over 50,000 hits per second. it can scale well and take advantage of hardware.', 'duration': 47.444, 'max_score': 7620.644, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc7620644.jpg'}, {'end': 7743.634, 'src': 'embed', 'start': 7712.896, 'weight': 4, 'content': [{'end': 7719.522, 'text': 'Django can be used with any of the python versions, starting from 2.7 till 3.7.', 'start': 7712.896, 'duration': 6.626}, {'end': 7721.824, 'text': 'python 3 is actually recommended now.', 'start': 7719.522, 'duration': 2.302}, {'end': 7727.448, 'text': 'This is because Django 1.1 is the last version to support python 2.7.', 'start': 7721.864, 'duration': 5.584}, {'end': 7735.215, 'text': 'since newer versions of python are often faster, have more features and are better supported, the latest version of python 3 is recommended.', 'start': 7727.448, 'duration': 7.767}, {'end': 7743.634, 'text': 'So one of the very important and the most frequently asked question is how to make changes to models and update the database.', 'start': 7736.474, 'duration': 7.16}], 'summary': 'Django is recommended to be used with python 3, which offers improved speed, features, and support compared to python 2.7.', 'duration': 30.738, 'max_score': 7712.896, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc7712896.jpg'}, {'end': 7877.374, 'src': 'embed', 'start': 7848.605, 'weight': 6, 'content': [{'end': 7852.927, 'text': 'But before we begin the practical aspect, there is some amount of theoretical knowledge that you need to have.', 'start': 7848.605, 'duration': 4.322}, {'end': 7858.75, 'text': 'So we begin the session by first understanding what is an API and how an API fits into Django.', 'start': 7853.527, 'duration': 5.223}, {'end': 7864.713, 'text': "After that we'll have a brief introduction to REST framework and what exactly is REST API and how does it work.", 'start': 7859.23, 'duration': 5.483}, {'end': 7869.595, 'text': "Then we'll move on to a demo part where we'll be building a RESTful web API from the scratch.", 'start': 7865.393, 'duration': 4.202}, {'end': 7874.117, 'text': "So let's begin the session and discuss the very first topic that is what is an API.", 'start': 7870.195, 'duration': 3.922}, {'end': 7877.374, 'text': 'So API refers to application programming interface.', 'start': 7874.793, 'duration': 2.581}], 'summary': 'This session covers theoretical knowledge about api, rest framework, and involves building a restful web api from scratch.', 'duration': 28.769, 'max_score': 7848.605, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc7848605.jpg'}, {'end': 8003.221, 'src': 'embed', 'start': 7975.134, 'weight': 5, 'content': [{'end': 7978.195, 'text': 'It is used for the purpose of web APIs for data communication.', 'start': 7975.134, 'duration': 3.061}, {'end': 7984.677, 'text': 'It also supports some of the common HTTP methods to make interaction between the machines or you can say applications.', 'start': 7978.855, 'duration': 5.822}, {'end': 7991.459, 'text': 'Now some of the HTTP methods that are commonly used in REST architecture are get, put, post and delete.', 'start': 7985.397, 'duration': 6.062}, {'end': 7993.82, 'text': 'So the very first method is get.', 'start': 7992.199, 'duration': 1.621}, {'end': 7998.541, 'text': 'Now get is basically used to return the records or you can see the data that you feed in.', 'start': 7994.52, 'duration': 4.021}, {'end': 8001.722, 'text': 'So basically get is used to retrieve a resource.', 'start': 7999.021, 'duration': 2.701}, {'end': 8003.221, 'text': 'Next is your put.', 'start': 8002.461, 'duration': 0.76}], 'summary': 'Web api supports common http methods like get, put, post, and delete for data communication and interaction between machines or applications.', 'duration': 28.087, 'max_score': 7975.134, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc7975134.jpg'}, {'end': 8109.788, 'src': 'embed', 'start': 8077.92, 'weight': 7, 'content': [{'end': 8081.601, 'text': 'you can create a RESTful API which will serve all your purpose in one go.', 'start': 8077.92, 'duration': 3.681}, {'end': 8088.023, 'text': 'Now making a RESTful API, you need to have a device access to website data through a common format.', 'start': 8082.142, 'duration': 5.881}, {'end': 8089.864, 'text': "So here we'll be using JSON.", 'start': 8088.403, 'duration': 1.461}, {'end': 8094.625, 'text': 'Now JSON is a data format and it is not at all specific to any of the device.', 'start': 8090.484, 'duration': 4.141}, {'end': 8101.007, 'text': 'So, basically, use JSON to communicate within a specific format, so that we can build an Android app,', 'start': 8095.425, 'duration': 5.582}, {'end': 8103.528, 'text': 'an iOS app or any other software that you want to make.', 'start': 8101.007, 'duration': 2.521}, {'end': 8109.788, 'text': 'Now, one more key feature that comes into picture is that if you have an API that performs certain operations,', 'start': 8104.266, 'duration': 5.522}], 'summary': 'Create a restful api using json for device-agnostic communication and building various software applications.', 'duration': 31.868, 'max_score': 8077.92, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc8077920.jpg'}, {'end': 8630.537, 'src': 'embed', 'start': 8601.565, 'weight': 8, 'content': [{'end': 8604.408, 'text': 'Now let me go back to my code and see what else we have to do.', 'start': 8601.565, 'duration': 2.843}, {'end': 8607.138, 'text': 'Now let us create a serializer class.', 'start': 8605.356, 'duration': 1.782}, {'end': 8611.221, 'text': 'Now this class is used to convert your model to your JSON data.', 'start': 8607.618, 'duration': 3.603}, {'end': 8616.906, 'text': "So JSON as I've already told you, JSON is a format and it is not at all specific to any application.", 'start': 8611.661, 'duration': 5.245}, {'end': 8625.353, 'text': 'Now JSON is used because whenever a user requests a website, we usually send them back a regular old HTML format or HTML response.', 'start': 8617.606, 'duration': 7.747}, {'end': 8628.115, 'text': "Now however, we don't want HTML.", 'start': 8625.873, 'duration': 2.242}, {'end': 8630.537, 'text': "It's only when you want information from the browser.", 'start': 8628.175, 'duration': 2.362}], 'summary': 'Creating a serializer class to convert model to json for website requests.', 'duration': 28.972, 'max_score': 8601.565, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc8601565.jpg'}, {'end': 8710.263, 'src': 'embed', 'start': 8681.625, 'weight': 9, 'content': [{'end': 8686.668, 'text': 'So whatever model you wanna serialize, just say the name of the class followed by a serializer keyword.', 'start': 8681.625, 'duration': 5.043}, {'end': 8691.129, 'text': 'Next this serializers dot model serializer is your inbuilt thing.', 'start': 8687.446, 'duration': 3.683}, {'end': 8698.654, 'text': "You don't have to worry about this because you just have your model as a blueprint which the serializer needs to convert to a JSON format.", 'start': 8691.429, 'duration': 7.225}, {'end': 8703.118, 'text': 'So next what we have to do, we have to create a class meta and further configure it.', 'start': 8699.435, 'duration': 3.683}, {'end': 8710.263, 'text': "So I'll create a class that is meta and I fill in the various fields that I've used in the employee model.", 'start': 8703.558, 'duration': 6.705}], 'summary': 'Serialize model using serializers; create meta class to configure fields.', 'duration': 28.638, 'max_score': 8681.625, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc8681625.jpg'}], 'start': 6926.718, 'title': 'Django framework and rest api basics', 'summary': 'Covers html basics, django overview, faqs about django framework, django admin customization, and creating a restful api with django. it also delves into creating a serializer class for converting models to json, providing a comprehensive understanding of django framework and rest api basics.', 'chapters': [{'end': 7514.088, 'start': 6926.718, 'title': 'Html basics and django overview', 'summary': 'Covers the basics of html including its structure, elements, and attributes, and provides an overview of the backend development process using django, including project creation, app development, database connection, and website beautification using html.', 'duration': 587.37, 'highlights': ['The chapter covers the basics of HTML including its structure, elements, and attributes. The transcript explains the structure of HTML, the two main types of HTML tags (block level and inline tags), and various HTML elements such as headings, paragraphs, links, images, buttons, lists, and tables.', 'Provides an overview of the backend development process using Django, including project creation, app development, database connection, and website beautification using HTML. The speaker walks through the process of creating a Django project, app development, database connection, and website beautification using HTML, along with a quick recap of the steps covered in the tutorial.', "Explains the do's and don'ts of Django, including guidelines for writing templates, views, and models. The speaker outlines best practices for writing Django template code, views, and models, emphasizing proper spacing, parameter naming, field naming conventions, and the order of models in classes and standard methods."]}, {'end': 7781.033, 'start': 7514.688, 'title': 'Faqs about django framework', 'summary': 'Explores the origin of django, its stability, scalability, compatibility, and common misconceptions, highlighting its usage by major companies and its support for python 3, while also addressing the process of making changes to models and updating the database.', 'duration': 266.345, 'highlights': ['Django is stable and used by major companies like Disqus, Instagram, Pinterest, and Mozilla, with sites built on Django weathering traffic spikes of over 50,000 hits per second. Django is stable and used by major companies like Disqus, Instagram, Pinterest, and Mozilla, with sites built on Django weathering traffic spikes of over 50,000 hits per second.', 'Django can scale and is designed to take advantage of as much hardware as possible, utilizing a shared nothing architecture and separating components such as the database layer and application layer. Django can scale and is designed to take advantage of as much hardware as possible, utilizing a shared nothing architecture and separating components such as the database layer and application layer.', 'Django is compatible with Python versions 2.7 to 3.7, with Python 3 being recommended for its faster performance, additional features, and better support. Django is compatible with Python versions 2.7 to 3.7, with Python 3 being recommended for its faster performance, additional features, and better support.', "To make changes to models and update the database in Django, the 'make migrations' command followed by the 'migrate' command should be used, as they facilitate development and are usable by other developers in production. To make changes to models and update the database in Django, the 'make migrations' command followed by the 'migrate' command should be used, as they facilitate development and are usable by other developers in production."]}, {'end': 8036.507, 'start': 7781.893, 'title': 'Django admin customization & api basics', 'summary': 'Covers customizing django admin interface functionality and provides an introduction to rest framework and rest api basics, including http methods and practical examples.', 'duration': 254.614, 'highlights': ['Introduction to REST framework The session begins with an explanation of REST framework and its usage for web APIs, including support for common HTTP methods such as get, put, post, and delete.', 'Customizing Django admin interface The chapter discusses ways to customize the admin interface, including attaching JavaScript modules and creating custom views to interact with the authentication system and permissions.', 'Understanding API basics The instructor provides a simple breakdown of API, explaining its components as application, programming, and interface, along with a practical understanding of how APIs allow communication between applications.']}, {'end': 8601.045, 'start': 8036.968, 'title': 'Creating a restful api with django', 'summary': 'Explains the process of creating a restful api using django, outlining the benefits of using a restful api, the installation process, creating a project and application, configuring settings, creating a model, using the admin panel, and running the server.', 'duration': 564.077, 'highlights': ['The chapter explains the process of creating a RESTful API using Django, outlining the benefits of using a RESTful API, the installation process, creating a project and application, configuring settings, creating a model, using the admin panel, and running the server. The transcript provides a comprehensive guide to creating a RESTful API using Django, covering the installation process, creating a project and application, configuring settings, creating a model, using the admin panel, and running the server.', 'It emphasizes the use of a RESTful API to connect different types of devices like Android, iOS, and software applications to a common format using JSON. The importance of using a RESTful API to connect various devices like Android, iOS, and software applications to a common format using JSON is highlighted, emphasizing its versatility and applicability.', 'The installation process for the REST framework using Python package manager is detailed, providing instructions for both command line and PyCharm installations. Detailed instructions for installing the REST framework using Python package manager, including guidance for both command line and PyCharm installations, are provided.', 'The process of creating a model or database to store employee information, configuring project settings, and using the admin panel to add and delete employees is explained. The transcript explains the process of creating a model or database to store employee information, configuring project settings, and using the admin panel to add and delete employees.', 'It demonstrates the creation of a super user, migration of table structure, and running the server to access the admin page and add employee details. The demonstration of creating a super user, migrating table structure, and running the server to access the admin page and add employee details is provided, offering a practical approach to the implementation process.']}, {'end': 8855.921, 'start': 8601.565, 'title': 'Creating a serializer class for converting models to json', 'summary': 'Highlights the process of creating a serializer class to convert a model to json, explaining the importance of json for user requests and the configuration of fields in the serializer class, along with the usage of http responses such as 200 and 404.', 'duration': 254.356, 'highlights': ['Explaining the importance of JSON for user requests and the need to send JSON instead of HTML for information retrieval from the browser. JSON is used when sending information to users upon request, instead of regular HTML, highlighting the preference for JSON over HTML for information retrieval.', 'Detailing the process of creating a serializer class to convert a model to JSON, including the steps of importing necessary modules and creating the class with a meta for field configuration. The process of creating a serializer class is detailed, involving the import of necessary modules, the creation of the class with a meta for field configuration, and the explanation of the model serializer as the blueprint for converting the model to JSON.', "Explaining the configuration of fields in the serializer class, including the option to manually specify required fields or return all fields present in the model. The configuration of fields in the serializer class is explained, providing the option to manually specify required fields or return all fields present in the model, with an example of selecting 'first name' and 'last name' as the response fields.", 'Detailing the usage of HTTP responses such as 200 and 404, with the 404 response being used when the requested object does not exist. The usage of HTTP responses, including the 200 and 404 responses, is detailed, with the 404 response being employed when the requested object does not exist in the database.']}], 'duration': 1929.203, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc6926718.jpg', 'highlights': ['The chapter covers the basics of HTML including its structure, elements, and attributes.', 'Provides an overview of the backend development process using Django, including project creation, app development, database connection, and website beautification using HTML.', 'Django is stable and used by major companies like Disqus, Instagram, Pinterest, and Mozilla, with sites built on Django weathering traffic spikes of over 50,000 hits per second.', 'Django can scale and is designed to take advantage of as much hardware as possible, utilizing a shared nothing architecture and separating components such as the database layer and application layer.', 'Django is compatible with Python versions 2.7 to 3.7, with Python 3 being recommended for its faster performance, additional features, and better support.', 'Introduction to REST framework The session begins with an explanation of REST framework and its usage for web APIs, including support for common HTTP methods such as get, put, post, and delete.', 'The chapter explains the process of creating a RESTful API using Django, outlining the benefits of using a RESTful API, the installation process, creating a project and application, configuring settings, creating a model, using the admin panel, and running the server.', 'It emphasizes the use of a RESTful API to connect different types of devices like Android, iOS, and software applications to a common format using JSON.', 'Explaining the importance of JSON for user requests and the need to send JSON instead of HTML for information retrieval from the browser.', 'Detailing the process of creating a serializer class to convert a model to JSON, including the steps of importing necessary modules and creating the class with a meta for field configuration.']}, {'end': 10373.387, 'segs': [{'end': 8904.998, 'src': 'embed', 'start': 8875.759, 'weight': 8, 'content': [{'end': 8876.96, 'text': 'So let me create a class for it.', 'start': 8875.759, 'duration': 1.201}, {'end': 8879.741, 'text': 'Say class employee list.', 'start': 8877.72, 'duration': 2.021}, {'end': 8882.963, 'text': 'And this inherits from an API view.', 'start': 8881.442, 'duration': 1.521}, {'end': 8887.413, 'text': 'So here we will create two methods, get method and a post method.', 'start': 8884.252, 'duration': 3.161}, {'end': 8892.314, 'text': 'So the very first method, that is your get method, it is used to return all the employees in our model.', 'start': 8887.973, 'duration': 4.341}, {'end': 8897.136, 'text': 'And then the second method, which is your post method, it helps you to create a new employee.', 'start': 8892.794, 'duration': 4.342}, {'end': 8899.396, 'text': 'So let me create these methods one by one.', 'start': 8897.576, 'duration': 1.82}, {'end': 8904.998, 'text': 'And the next method, that is my post.', 'start': 8903.257, 'duration': 1.741}], 'summary': "Creating a class 'employee list' with two methods: get returns all employees, post creates new employee.", 'duration': 29.239, 'max_score': 8875.759, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc8875759.jpg'}, {'end': 8975.705, 'src': 'embed', 'start': 8926.353, 'weight': 9, 'content': [{'end': 8930.015, 'text': "I'll have my model and it'll say objects at all.", 'start': 8926.353, 'duration': 3.662}, {'end': 8937.441, 'text': 'Next we have to serialize them, which means that it will take all your objects and convert them into JSON.', 'start': 8932.477, 'duration': 4.964}, {'end': 8940.223, 'text': "So I'll take the serializer for that.", 'start': 8938.622, 'duration': 1.601}, {'end': 8942.445, 'text': "I'll take serializer.", 'start': 8940.243, 'duration': 2.202}, {'end': 8945.506, 'text': 'So this is the name of my serializer.', 'start': 8944.005, 'duration': 1.501}, {'end': 8949.889, 'text': 'And here I will pass in the employee, which means all your objects.', 'start': 8945.946, 'duration': 3.943}, {'end': 8953.312, 'text': 'And the second parameter would be many is equal to true.', 'start': 8950.43, 'duration': 2.882}, {'end': 8957.955, 'text': 'So this second parameter that you can see here, it means that there are many of them.', 'start': 8953.952, 'duration': 4.003}, {'end': 8960.617, 'text': "So here you don't have to return just one JSON object.", 'start': 8958.075, 'duration': 2.542}, {'end': 8964.38, 'text': 'Next we know every view function returns an HTTP response.', 'start': 8961.358, 'duration': 3.022}, {'end': 8966.021, 'text': "So in our case it's JSON.", 'start': 8964.76, 'duration': 1.261}, {'end': 8968.723, 'text': 'So what we have to do, we have to return a JSON.', 'start': 8966.441, 'duration': 2.282}, {'end': 8975.705, 'text': 'Serialize.data This is serializer.', 'start': 8972.125, 'duration': 3.58}], 'summary': 'Model detects objects, serializes them into json, and returns http response as json.', 'duration': 49.352, 'max_score': 8926.353, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc8926353.jpg'}, {'end': 9093.032, 'src': 'embed', 'start': 9066.055, 'weight': 1, 'content': [{'end': 9071.098, 'text': 'Therefore going on employees it will go to my views and then it will turn the class that is employee list as view.', 'start': 9066.055, 'duration': 5.043}, {'end': 9075.161, 'text': "So in this way we'll get the data in a JSON format.", 'start': 9072.119, 'duration': 3.042}, {'end': 9077.122, 'text': 'So with this a code is completed.', 'start': 9075.581, 'duration': 1.541}, {'end': 9082.185, 'text': "Now what you have to do you just have to throw this URL and connect to any website's database.", 'start': 9077.542, 'duration': 4.643}, {'end': 9086.127, 'text': 'And from that you can get all the information from any device in the world.', 'start': 9082.965, 'duration': 3.162}, {'end': 9088.829, 'text': 'Be it iPhone, be it your Android or anything.', 'start': 9086.428, 'duration': 2.401}, {'end': 9093.032, 'text': 'So now let me go back to my server and see whether this API is working or not.', 'start': 9089.289, 'duration': 3.743}], 'summary': 'Developed a code to access website database via url, retrieving data in json format.', 'duration': 26.977, 'max_score': 9066.055, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc9066055.jpg'}, {'end': 9261.9, 'src': 'embed', 'start': 9232.664, 'weight': 2, 'content': [{'end': 9235.167, 'text': 'I have some static files and some text displayed.', 'start': 9232.664, 'duration': 2.503}, {'end': 9241.073, 'text': 'So here is my Python Django tutorial, which is the header of the website and here in the left hand side.', 'start': 9235.747, 'duration': 5.326}, {'end': 9242.294, 'text': 'I have the edureka logo.', 'start': 9241.193, 'duration': 1.101}, {'end': 9251.737, 'text': 'Just below that I have a navigation bar which contains three tabs that is home tab courses tab and contacts tab after that in the same div container.', 'start': 9243.155, 'duration': 8.582}, {'end': 9255.718, 'text': 'I have placed four static files which says edureka has live classes.', 'start': 9251.877, 'duration': 3.841}, {'end': 9257.219, 'text': 'It has expert instruction.', 'start': 9255.878, 'duration': 1.341}, {'end': 9261.9, 'text': 'It has 24 7 support and flexible scheduling and towards the end in the photo.', 'start': 9257.359, 'duration': 4.541}], 'summary': 'Python django tutorial website with 3 tabs, 4 static files, and edureka features.', 'duration': 29.236, 'max_score': 9232.664, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc9232664.jpg'}, {'end': 9326.77, 'src': 'embed', 'start': 9298.678, 'weight': 11, 'content': [{'end': 9303.259, 'text': "So Python and the course description is below and when it was published, it's all written.", 'start': 9298.678, 'duration': 4.581}, {'end': 9306, 'text': "It's the date and time has been mentioned.", 'start': 9303.339, 'duration': 2.661}, {'end': 9310.622, 'text': 'Similarly, if I go to courses again, same is case with Django.', 'start': 9306.54, 'duration': 4.082}, {'end': 9314.644, 'text': 'Django it displays the description and the date and time with respect to it.', 'start': 9310.622, 'duration': 4.022}, {'end': 9315.825, 'text': 'last we have contact.', 'start': 9314.644, 'duration': 1.181}, {'end': 9323.529, 'text': 'So in contact I have just displayed the view which says contact in support at edureka.com which basically gives 24 7 support.', 'start': 9316.345, 'duration': 7.184}, {'end': 9326.77, 'text': 'So this is how my website looks like now in the courses tab.', 'start': 9323.989, 'duration': 2.781}], 'summary': 'A website with python and django course descriptions, along with contact information for 24/7 support, has been created.', 'duration': 28.092, 'max_score': 9298.678, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc9298678.jpg'}, {'end': 9397.91, 'src': 'embed', 'start': 9365.881, 'weight': 12, 'content': [{'end': 9368.443, 'text': "Now, let's have to upload a new course which has a name.", 'start': 9365.881, 'duration': 2.562}, {'end': 9371.045, 'text': "Let's say up here and description.", 'start': 9368.483, 'duration': 2.562}, {'end': 9372.827, 'text': 'I just write this is a new course.', 'start': 9371.205, 'duration': 1.622}, {'end': 9381.814, 'text': 'So then you can just provide the date you can select today and you can select the time is now and then you just simply have to save it.', 'start': 9374.348, 'duration': 7.466}, {'end': 9384.699, 'text': 'So now as you can see the post has been added.', 'start': 9382.757, 'duration': 1.942}, {'end': 9391.184, 'text': "Now, once you go back to your website here, we'll see the course will be added by just refresh this page.", 'start': 9384.719, 'duration': 6.465}, {'end': 9397.91, 'text': 'So here as you can see RPA has been added now, if I click on that it will display me the description date and time.', 'start': 9391.965, 'duration': 5.945}], 'summary': 'A new course named rpa has been added with description, date, and time.', 'duration': 32.029, 'max_score': 9365.881, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc9365881.jpg'}, {'end': 9519.024, 'src': 'embed', 'start': 9495.101, 'weight': 13, 'content': [{'end': 9503.087, 'text': 'I have created one more HTML that is basic.html and there I have just passed a dictionary which has a key as content.', 'start': 9495.101, 'duration': 7.986}, {'end': 9509.331, 'text': 'So this is my dictionary and then I have passed the content to it which says contact supported edureka.com.', 'start': 9503.567, 'duration': 5.764}, {'end': 9513.82, 'text': 'So these are my two templates which says home.html and basic.html.', 'start': 9510.157, 'duration': 3.663}, {'end': 9519.024, 'text': "So let me just go to my template folders and let's see what exactly is there in home and basic.", 'start': 9514.12, 'duration': 4.904}], 'summary': "Created two html templates, home.html and basic.html, with a dictionary containing 'content' key and a message 'contact supported edureka.com'.", 'duration': 23.923, 'max_score': 9495.101, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc9495101.jpg'}, {'end': 9835.616, 'src': 'embed', 'start': 9808.685, 'weight': 14, 'content': [{'end': 9815.746, 'text': 'So here I have specified the model is my post and here I have displayed one more template which is inside my courses and this is post.html.', 'start': 9808.685, 'duration': 7.061}, {'end': 9817.987, 'text': 'So let me go to courses and post.html.', 'start': 9816.107, 'duration': 1.88}, {'end': 9823.226, 'text': 'So inside my templates, I have two templates that is courses and post additional.', 'start': 9819.44, 'duration': 3.786}, {'end': 9825.589, 'text': 'So this is the HTML for my slider.', 'start': 9823.626, 'duration': 1.963}, {'end': 9829.655, 'text': "So it's again extending my main HTML which is headed or HTML.", 'start': 9825.909, 'duration': 3.746}, {'end': 9835.616, 'text': 'The inheritance is taking place by the keyword that is extends now everything is inside your ginger logic.', 'start': 9830.33, 'duration': 5.286}], 'summary': 'The transcript discusses specifying a model and displaying templates for courses and posts, including html for a slider and inheritance through extends keyword.', 'duration': 26.931, 'max_score': 9808.685, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc9808685.jpg'}, {'end': 10095.094, 'src': 'embed', 'start': 10050.735, 'weight': 0, 'content': [{'end': 10055.398, 'text': 'It is used for developing web applications where we break the code into various segments here.', 'start': 10050.735, 'duration': 4.663}, {'end': 10061.782, 'text': 'We have three segments namely the model view and a controller model is used for storing and maintaining data.', 'start': 10055.518, 'duration': 6.264}, {'end': 10069.446, 'text': 'It is the back end where your database is defined views on the other hand are all about presentation and it is not at all aware of the back end.', 'start': 10062.182, 'duration': 7.264}, {'end': 10071.928, 'text': 'It basically deals with more of HTML.', 'start': 10069.927, 'duration': 2.001}, {'end': 10076.42, 'text': 'A controller is a business logic which will interact with the model and the view.', 'start': 10072.816, 'duration': 3.604}, {'end': 10082.866, 'text': 'So now talking about the MVT architecture of Django MVT stands for model view template in MVT.', 'start': 10077.02, 'duration': 5.846}, {'end': 10085.429, 'text': 'There is a predefined template for user interface.', 'start': 10083.167, 'duration': 2.262}, {'end': 10092.853, 'text': 'Say for example, you write several static HTML forms like hello user 1 hello user 2 and so on with template.', 'start': 10086.132, 'duration': 6.721}, {'end': 10095.094, 'text': "You'll be having only one file that prints.", 'start': 10093.113, 'duration': 1.981}], 'summary': 'Django uses mvt architecture with model, view, and template segments for web application development.', 'duration': 44.359, 'max_score': 10050.735, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc10050735.jpg'}, {'end': 10143.219, 'src': 'embed', 'start': 10116.546, 'weight': 5, 'content': [{'end': 10122.188, 'text': "So like I've already told you all before the SQLite database comes as a default configuration along with Django.", 'start': 10116.546, 'duration': 5.642}, {'end': 10125.689, 'text': "If you're new to databases and you're just interested in trying Django.", 'start': 10122.548, 'duration': 3.141}, {'end': 10129.231, 'text': 'This is the easiest choice SQLite is included in Python.', 'start': 10125.97, 'duration': 3.261}, {'end': 10135.393, 'text': "So you don't need to install anything else to support your database in case you're working on some real big project.", 'start': 10129.471, 'duration': 5.922}, {'end': 10140.115, 'text': 'You will need to use a more robust database like Oracle MySQL Etc.', 'start': 10135.633, 'duration': 4.482}, {'end': 10143.219, 'text': 'Now to connect your project to the database.', 'start': 10141.138, 'duration': 2.081}], 'summary': 'Sqlite is included in django for easy database setup, suitable for new users and smaller projects.', 'duration': 26.673, 'max_score': 10116.546, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc10116546.jpg'}, {'end': 10257.062, 'src': 'embed', 'start': 10214.326, 'weight': 4, 'content': [{'end': 10219.028, 'text': 'Django provides a session that lets you store and retrieve on a per site visitor basis.', 'start': 10214.326, 'duration': 4.702}, {'end': 10228.733, 'text': 'Django abstracts the process of sending and receiving cookies by placing a session ID cookie on the client side and storing all the related data on the server side.', 'start': 10219.028, 'duration': 9.705}, {'end': 10232.255, 'text': 'So the data itself is not stored on the client side.', 'start': 10229.334, 'duration': 2.921}, {'end': 10236.117, 'text': 'This is actually very nice from a security perspective.', 'start': 10232.675, 'duration': 3.442}, {'end': 10241.6, 'text': 'So now moving on towards the next question, which is list out the inheritance tiles in Django.', 'start': 10236.978, 'duration': 4.622}, {'end': 10247.729, 'text': 'In Django, there are basically three possible inheritance styles the abstract base classes.', 'start': 10242.401, 'duration': 5.328}, {'end': 10257.062, 'text': 'This style is used when you only want the parent class to hold information that you do not want to type out for each child model the multi-table inheritance.', 'start': 10248.29, 'duration': 8.772}], 'summary': 'Django session stores data on server, 3 inheritance styles in django.', 'duration': 42.736, 'max_score': 10214.326, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc10214326.jpg'}, {'end': 10331.522, 'src': 'embed', 'start': 10303.677, 'weight': 7, 'content': [{'end': 10306.318, 'text': 'So now moving on towards the final question of this session.', 'start': 10303.677, 'duration': 2.641}, {'end': 10314.458, 'text': 'which is what is a model a model is actually a single definitive source of truth about your data.', 'start': 10307.313, 'duration': 7.145}, {'end': 10317.74, 'text': 'It contains the essential fields and behaviors of the data.', 'start': 10314.878, 'duration': 2.862}, {'end': 10322.703, 'text': "You're storing Django follows the dry principle or the do not repeat yourself principle.", 'start': 10317.78, 'duration': 4.923}, {'end': 10327.926, 'text': 'The goal is to Define your data model in one place and automatically derive things from it.', 'start': 10323.063, 'duration': 4.863}, {'end': 10330.481, 'text': 'This includes the migrations.', 'start': 10328.641, 'duration': 1.84}, {'end': 10331.522, 'text': 'for example,', 'start': 10330.481, 'duration': 1.041}], 'summary': "A model in django is a single definitive source of truth about the data, designed to follow the 'do not repeat yourself' principle, allowing for defining the data model in one place and automatic derivation of things from it, such as migrations.", 'duration': 27.845, 'max_score': 10303.677, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc10303677.jpg'}], 'start': 8856.141, 'title': 'Developing django websites and apis', 'summary': 'Covers creating class-based views for the employee model, integrating apis into a website, building a website with django and python, and providing django interview insights, including comparisons with flask, architecture, database setup, and essential views and templates.', 'chapters': [{'end': 8975.705, 'start': 8856.141, 'title': 'Creating class-based view for employee model', 'summary': 'Explains the process of creating a class-based view for the employee model with methods to return all employees and create a new employee, utilizing the concepts of http responses and json serialization.', 'duration': 119.564, 'highlights': ["The chapter explains the process of creating a class-based view for the employee model with methods to return all employees and create a new employee It covers the creation of a class-based view named 'employee list' with 'get' and 'post' methods to handle retrieving all employees and creating a new employee.", 'utilizing the concepts of HTTP responses and JSON serialization It emphasizes the usage of HTTP responses and JSON serialization to handle data retrieval and conversion into JSON format.', 'Next we have to serialize them, which means that it will take all your objects and convert them into JSON Describes the process of serialization to convert all objects into JSON format, ensuring efficient data handling and manipulation.']}, {'end': 9276.316, 'start': 8976.966, 'title': 'Api integration and website creation', 'summary': 'Covers the process of creating apis and integrating them into a website, including linking views, creating urls, and testing the api; it also showcases the development of a website using django and highlights the components and layout of the website.', 'duration': 299.35, 'highlights': ['The chapter covers the process of creating APIs and integrating them into a website, including linking views, creating URLs, and testing the API.', 'The API is designed to return employee information in a JSON format, accessible from any device, and supports multiple types of requests including get, post, put, patch, and delete.', 'The website development using Django involves creating static files, navigation bar, and contact information, along with the layout and components of the website.']}, {'end': 9940.01, 'start': 9276.954, 'title': 'Building a website with django and python', 'summary': 'Explains the process of building a website using django and python, including adding courses with detailed descriptions, managing the admin panel, creating templates, and using static files for design, with a focus on creating a slider for courses and displaying course details.', 'duration': 663.056, 'highlights': ['Adding courses with detailed descriptions and date/time information, including Python and Django. The website currently has two courses, Python and Django, each with a detailed description and date/time information displayed.', 'Managing the admin panel to add more courses, including creating a new course with a name, description, date, and time. The admin panel allows the addition of new courses by providing a name, description, date, and time, with the ability to add unlimited courses.', 'Creating templates for home and contact pages, passing dictionary data, and using static files and bootstrap for website design. Templates for home and contact pages are created, passing dictionary data and using static files and bootstrap for website design, including the usage of header.html, home.html, basic.html, and loading static files and images.', 'Creating a slider for courses and displaying course details using templates and models. A slider is created for courses and course details are displayed using templates and models, including the use of post.html and displaying course descriptions and dates.']}, {'end': 10373.387, 'start': 9940.11, 'title': 'Django interview insights', 'summary': 'Covers essential django interview insights, including comparisons with flask, django architecture, setting up the database, writing views, using templates, sessions, inheritance styles, and the difference between a project and an app.', 'duration': 433.277, 'highlights': ['Django follows an MVC MVT architecture, where the model is used for storing and maintaining data, views are about presentation, and the controller deals with business logic. Django follows an MVC MVT architecture, with the model for data storage, views for presentation, and the controller for business logic.', 'Django abstracts the process of sending and receiving cookies by placing a session ID cookie on the client side and storing related data on the server side, enhancing security. Django abstracts sending and receiving cookies through a session ID cookie on the client side and storing related data on the server side, improving security.', 'Django includes a default SQLite database configuration, suitable for new users, while larger projects may require more robust databases like Oracle or MySQL. Django provides default SQLite database configuration for new users, but larger projects may need robust databases like Oracle or MySQL.', 'Django provides three inheritance styles: abstract base classes, multi-table inheritance, and proxy models, for flexible model structuring. Django offers three inheritance styles: abstract base classes, multi-table inheritance, and proxy models, allowing flexible model structuring.', "A model in Django is a single definitive source of truth about data, following the 'do not repeat yourself' principle, aiming to define data models in one place and derive other elements from it. In Django, a model serves as a single source of truth for data, following the 'do not repeat yourself' principle to define data models in one place and derive other elements from it."]}], 'duration': 1517.246, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/HRLIEgwYSHc/pics/HRLIEgwYSHc8856141.jpg', 'highlights': ['The chapter covers the process of creating APIs and integrating them into a website, including linking views, creating URLs, and testing the API.', 'The API is designed to return employee information in a JSON format, accessible from any device, and supports multiple types of requests including get, post, put, patch, and delete.', 'The website development using Django involves creating static files, navigation bar, and contact information, along with the layout and components of the website.', 'Django follows an MVC MVT architecture, where the model is used for storing and maintaining data, views are about presentation, and the controller deals with business logic.', 'Django abstracts the process of sending and receiving cookies by placing a session ID cookie on the client side and storing related data on the server side, enhancing security.', 'Django includes a default SQLite database configuration, suitable for new users, while larger projects may require more robust databases like Oracle or MySQL.', 'Django provides three inheritance styles: abstract base classes, multi-table inheritance, and proxy models, for flexible model structuring.', "A model in Django is a single definitive source of truth about data, following the 'do not repeat yourself' principle, aiming to define data models in one place and derive other elements from it.", "The chapter explains the process of creating a class-based view for the employee model with methods to return all employees and create a new employee It covers the creation of a class-based view named 'employee list' with 'get' and 'post' methods to handle retrieving all employees and creating a new employee.", 'utilizing the concepts of HTTP responses and JSON serialization It emphasizes the usage of HTTP responses and JSON serialization to handle data retrieval and conversion into JSON format.', 'Next we have to serialize them, which means that it will take all your objects and convert them into JSON Describes the process of serialization to convert all objects into JSON format, ensuring efficient data handling and manipulation.', 'Adding courses with detailed descriptions and date/time information, including Python and Django. The website currently has two courses, Python and Django, each with a detailed description and date/time information displayed.', 'Managing the admin panel to add more courses, including creating a new course with a name, description, date, and time. The admin panel allows the addition of new courses by providing a name, description, date, and time, with the ability to add unlimited courses.', 'Creating templates for home and contact pages, passing dictionary data, and using static files and bootstrap for website design. Templates for home and contact pages are created, passing dictionary data and using static files and bootstrap for website design, including the usage of header.html, home.html, basic.html, and loading static files and images.', 'Creating a slider for courses and displaying course details using templates and models. A slider is created for courses and course details are displayed using templates and models, including the use of post.html and displaying course descriptions and dates.']}], 'highlights': ["Django's MVT architecture, usage by top companies, and notable features like rapid development and security make it a popular choice.", 'Python offers various web development libraries like cherry pie, Django, and more.', 'Installing Django and Related Modules The installation process for Django in PyCharm is explained, including the installation of Django, SQL parse database, and the pyTZ module.', 'Understanding Django Project Structure The purpose of key files such as manage.py, init.py, settings.py, and urls.py is highlighted, explaining their roles in a Django project.', "The process includes creating two classes within the models.py file—one for holding the name of the course and the instructor's name, and another for holding the details of each course, including the course types available at edureka.", "The chapter emphasizes the importance of object representations in Django's admin and provides guidance on retrieving and filtering objects.", 'Automated tests ensure code functions as intended, offering a systematic approach to verifying code behavior.', 'Django is stable and used by major companies like Disqus, Instagram, Pinterest, and Mozilla, with sites built on Django weathering traffic spikes of over 50,000 hits per second.', 'The chapter covers the process of creating APIs and integrating them into a website, including linking views, creating URLs, and testing the API.', 'Django follows an MVC MVT architecture, where the model is used for storing and maintaining data, views are about presentation, and the controller deals with business logic.']}