 Hello everyone, now I am audible. So my friend and colleague has touched upon the basics of pythons. And I will go through you through sequence. This is basically a data structures, tuples, lists and strings. The sequence types, there are three sequence types of pythons, which is defined as in parenthesis, here is John as a string 32 and CMSC as a list. So what is a tuple? A tuple is a simple immutable order sequence of items and items can be of mixed types. So we can define tuple inside a string, a number, numeric number, a list and a nested tuple. The second type is of string, which we define as between quotes, John Smith. It is to a immutable type. Immutable type means we cannot change it later. When it is declared, it is not changeable. The point of a string and tuple is that conceptually very much like a tuple. And the third type of sequence is list, defined it between square brackets. Here too it is a mutable, the list is a mutable order. It is a sequence of items of mixed types. So list is mutable type, strings is of immutable and tuple is also immutable. So if we define the list, we can change it later. So any item of list such as tuple or John, if we define the list, this equal to this and we can then change the value of the list of order sequence. Because this order sequence we can access through indexes, so indexes of number. So all three sequences types, tuples, strings and lists share much of the same syntax and functionality. The key difference is as we have mentioned earlier, tuples and strings are immutable whereas lists are mutable. We will show some operations on sequences which are applied to all sequence types. All sequence types list, tuples and strings. So most example we show the operation performed on one. We will show it on tuples all list or on strings. So we can define tuples using parenthesis and commas. So here tuple q is a variable, we defined as equal to parenthesis 23, a string ABC, a float, a tuple inside again, a listed tuple and a string again definition. We can define list using square brackets and commas. So we define list where Li is a variable, we are defining Li as a list variable which contains ABC as a string, 34 float number again and numeric number. And we can define string using quotes, double quotes, single quotes or a multiple line strings which we have defined with a triple quotes which was stated in the third line. This is the multi line string that uses triple quotes. So we define a string of multiple line, we have to define it under a triple quotes and go to the new line. We are defining a variable SD. If we define where we have mentioned a commit only with a triple quotes, it will not be executed. If we define a variable SD, then we define a multiple line strings. So this is the string multi line string which is referenced by SD. So it is not a commit. The commit would be like this only. As we have mentioned, sequence is a ordered sequence. So we can access individual members of a tuple list or string using square bracket of added rotation. And here all the sequence are zero based as the indexing starts from zero. So if we define a tuple which is equals to between parenthesis, 23 string and this. So if you want to access the second item, the second item would be 1 because starting with zero. So if tu1 that means it will return a second item in the tuple which is ABC which is same as applicable in list 2. So list is goes to ABC 34. So LI1 will return 34. And in string, string is also a sequence which is a sequence of characters. So ST1 will return H is zero then the first one is E. So it will return E. We can use indexes as a positive or a negative index. So positive index count starts from the left but in the negative index it will start counting from the right. So positive index is D1 so it will return ABC. But if we add negative index starts from the right starting from minus 1. So count start from right starting with minus 1. So the last item is DF if we say minus 3 then from the right minus 3 minus 2 minus 1. Sorry, minus 1 minus 2. Sorry, it is minus 1 minus 2 minus 3. So index T square bracket minus 3 will return 4.56 which is a variable. There is also a function of slicing which returns a copy of a subset of sequences. So what is basically a sizing is returns a copy of the container with a subset of the original members. Start copying from the first index and goes to the second last of the second index. So means if T is a list or tuple if we find T is tuple 23 ABC this. So T1 colon 4 it will slice this and return a copy of this which contains starting from 1. So 1 is ABC because index starts from 0 1 to the second last of the second index. So 1, 2, 3 we can slice with the negative index as well where negative index counts starts from the end. So T1 colon minus 1 will start counting from the end and goes to this. So T1 colon minus 1 is actually here it will go to the second last of minus 1 which is minus 2 to 3 and go to 1. So it will return ABC 4.56 to 2 and 3. Where? Last. Which one is not there? It is the last index which returns second last of this. When we go index is slicing 1 colon 4 means it is a positive index. So 1 colon 4 means it will start from the 1 starting index is 1 and the end index will be 4 minus 1 that is 3. Now we can also omit any of the index that is first index or second index. So if we omit the first index it also returns a copy of the original members of sequence starting from the beginning of the container. So omit the first index so it will begin from the first one and that is first one is 0 starting from 0 and goes to this. 2 is 2 minus 1 so 2, 3 which is first one then ABC. If we omit the first index it will start beginning from the 0 that is 0, 2. If we omit the second index so it will goes to the last end of the tuple or list or end characteristics. So if we omit second index it will start from 2 and goes to the end of the sequence. So it will return 4.56, 2, 3 and the last which is DEF. So if we omit the first and second index both of them then we can make copy of the entire sequence. Means if T is this and T only colon we have omitted the first index and second index. So it will return copy of the entire sequence and that will be ABC, 4.6 all the members. Now note here the difference between these two lines are for mutable sequences. The sequence is mutable that is list not string or tuple. So L2 equal to L1 it will refer both referred to a same reference. So we change any of them we have declared a second list L2 which is equal to L1. So L2 and L1 will refer to the same memory reference of the list of L1 if we say L1 is this. So if we change L1 it will take effect on L2. But if we declare L2 as a slicing of L1 so this returns a shallow copy. So if L1 omitting first and second index so it will return whole copy of L1 and then assign it to L2. So both are now referring to the different memory locations. So if we change independent copies to references L1 is referring to another list. Values are will be the same but the memory references are different. There are number of operators which we can apply on sequences such as Boolean test where whether a value exist in a list tuple or not where if T is goes to a list of 1, 2, 4, 5 containing values. So we can check if 3 in T where T is list because 3 does not exist so it will return false. Same as for here it will return true and 4 not in because 4 exist so it will again return false. For strings we can test for sub strings. So A is equals to a string A, B, C, D to character C in A so C is a sub string which is here it will return true. CD is a sub string of this it will also return true and AC where AC is not sub string. ABC would have been a sub string but AC is not a sub string. So it will return false. The in keyword is also used in the syntax for fall loops. As we have gone through fall loops as told by Astro show we can loop in any list using fall loops. So we can loop as looping for for in list. So it is a Boolean test and that in was a iterable thing. So here in and the looping in for are totally different. The plus operator the plus operator produces a new copy. Tuple list of string whose value is the concanation of the string. So the plus here plus is actually overloaded for list object. List is a building type and plus side is overloaded for the list type. So if we want to merge two sequences here 1, 2, 3 is a tuple and 4, 5 is auto tuple and we merge T1 and T2. It will return a new copy of merged list of both of this similar for list and string. So hello plus empty string plus world it will return hello space world. The star operators returns again a new to the list of string and repeats the original content. So if 1, 2, 3 which is a tuple we find a star operator is 3. So it will return a new copy of tuple which will be repeated 3 types of values of this. So it will be 1, 2, 3 comma again 1, 2, 3 comma 1, 2, 3. Say for list and for string hello operator 3 star operator 3 will return a string a new copy of string will contain hello 3 times. Mutability tuples versus as I mentioned that list is mutable but tuples is not mutable. So if list is equals to a string a, b, c this. So we can change the value of the list of any index by accessing the index by index and equal to 45. So if we say li is equals to string a, b, c. So li 1 is here 23 so we have changed it li is equals to 45. So it will return the same list with value change from 23 to 45. But and we can change list in place. So this list actually has a main same memory reference of this list. So it is not new copy of the list it is a same list pointing to the main same memory reference. But tuples and strings are immutable. So you can define t is equals to tuple 23 this and we try to change any of its values or by accessing through its index. T2 is equals to 3.2. So Python will return error message which says that object doesn't support item. Because tuple is immutable it cannot support an item assignment. So we want to change a tuple. So then we can make a fresh copy of tuple and then assign it with the same memory reference to t. So we can say t is equals to this. Now we want to change that t is equals to not 4.56 or anything like that. We can define a new list of tuples then assign it to the t. But we cannot change it through accessing its index. The immunity of people means that they are faster than the list. It cannot be anything else. It can't be anything else. But we are just defining that t is first t is contains tuple 1.2. Then we are assigning t is equals to 1.2.3 or 1.2.4. But the first assignment t was a different assignment. It cannot be was its immutable. We cannot change its accessing its index. So again if you want t is 1.2.3. So we have to again define it as t is equals to 1.2.3. So now execution will tell that t is this now 1.2.3. It's a new copy of t and the assignment is the same. That only t has changed to this. Both are different copies. These are operations on list only. Because tuples and strings are immutable. And only list is immutable. So we can there are number of operations which are applicable on list. And we can perform the say append. So if list is one this thing and we want to append something last to the append. There is a function defined on list append. So list is a list object. So object or list object dot append and the value. So here we will append a to the last of the list. The second function is insert. Here too we can insert with index value and index number we have to insert the list. So who is the index position and i is the value. So we say li dot insert at index 2 comma value i. We will return a list which is the same list. But it will now contain i at the second index position. We have gone through the plus operator. There is again another method available extend. So what is plus of it creates a fresh list with a new memory reference. Plus operators we have gone through the plus order. We have said that it will be more to merge to list, list l1 and list l2. We can just do it through l1 plus l2. But it will not contain a new memory reference. That will return a new list of merged version of l1 and l2. But extend operates on the list li in place. So extends is a function which will which arguments. Its arguments are list 987. So it will return the same list with extended values of 987. This is not true memory reference it is the same list. There may be a confusing between extend and append. So extend takes a list as an argument whereas append takes a singleton value. So if we try to append a list li dot append. So it will take a singleton and it will be a nested list again. So li dot append if we passed list as an argument. So it will append whole of list as a nested list on the original list. Where word 234 and the last value will be a list which contains 10, 11 and 12. Whereas extend the argument if we say li dot extend 10, 11, 12. The list would have been word 2 with this comma 10 comma 11 comma 12. On list we have many methods including index count, remove, reverse, sort. So in reverse method if we use the reverse method this is li dot reverse. It reverse the original list. So if the list is 5268 and we perform and reverse operation on list li dot reverse. So now list li will be the reverse version of the same list. So it will now 8625. Similarly short function will give you the as expected the shorted version of the list. There are number of things of tuples. Sorry. There are some types. In that case actually list can contain a mixed type. But while you are using list in python we generally take list as a homogeneous mix items. Not heterogeneous. For heterogeneous there are abilities for tuples. There is only characters are there. Theta type should be same. Cannot be a mixed type and we cannot use short then. If some 2 comma string b and we use short then we will return error. Because shorting will not work on the new ring type and the character type. Which one? You can call some function is the user defined function. We will take elements from the side. It is pass total list to this function. Then individually you can pick 2 or whatever the list is. You can define your own comparison function. The parameter will be the list. Complexity of the sort of. Number of details of tuple. Actually when we have said we can define tuple as a parenthesis. So parenthesis is not important tuples. The only thing important is the comma of this. So if in the python interpreter we write it as 1 comma. The python interpreter will define it as a tuple. 1 is the singularity of tuple containing a single element 1. Pythons source parenthesis is for clarity. Best practice. Don't forget to comment. So if we say parenthesis without a comma. So it is not a tuple it is just a numeric number 1. So trailing comma only required for the singletons. So if you want to define a tuple containing a single element. We have to define a trailing comma containing a single element. And for empty string we can sorry tuple. There is a special syntax only containing parenthesis. It is a empty tuple. Or a function tuple containing empty list. So there are lastly somebody between tuples where the list is lower but more powerful than tuples. Because there are number of operators functions provided in python which we can operate on lists. Lists can be modified because it is mutable and they have lots of handy operation and methods. Tuples are mutable and have fewer features. We can convert between tuples and list by we want to convert a tuple t where tu is the tuple. We can say list is was to list keyword inside that argument as a tuple. This is tuple will be converted to a list and will assign to li. And vice versa we can convert a list to a tuple. So tuple will be equal to keyword tuple as a function past the list it will convert return a tuple value and assign it to tu. So that is all about sequences, some data structures. Now we can go through the modules. What is a module actually? A module is a file containing python definition and statements. The file name is the module name with the suffix dot i appended. So the file name would be say spam dot py. Within the module the module's name as a spring is available as the global variable. This is underscore underscore name underscore. For instance use your it is a file feebo dot we have defined a file feebo dot py file. We can say it is a module file which contains two definitions definition which returns the series up to the end of series. And the second function is definition to return to a list. Now we can go to the python interpreter and type a command import feebo where feebo is the module name. So when we say import feebo this does not imports the functions which are available on the module file. Actually it imports the global variable name feebo to the scope of that interpreter. Now we can access the functions of feebo through module name dot fib 10000. We will return the same thing and again feebo dot fib 10000. And if we say feebo dot underscore which is the global variable name of it will return a string of file name feebo. In python we can there are errors and exceptions. The errors can be of syntax errors. The severe syntax errors also known as parsing errors are perhaps the most common we will encounter is still learning. If we say here the statement while true print hello world it will return an error with the square this thing. Syntax error invalid syntax. So it is a syntax error with the parser which is offering this. Colon is missing because here the colon while true colon the syntax of python is in any loop. So we have to say end with this as a colon. So here the colon is missing so it will return a syntax error. This is missing. Errors and exceptions there is an error and exceptions. Exception is what even if the statement or expression is syntax error you are correct. There can be a programming error where errors detecting human execution are called as exceptions. So it is a run type error which is not detected on the parsed type. So the error detected on the run type are called exceptions. Where on the parsing type it will be a syntactical error or something like that. So on run type if we say 10 into 1 divided by 0 so it will return an exception. This is a division by 0 error. 4 plus spam into 3 it will return an exception because spam is not defined earlier. It will not because python interpreter does not know what is spam here. Similarly string plus string will return an error because it cannot convert string with numeric value or numeric value to string. All these are exceptions. So we can handle exception by try and accept. We can if we put a code between a try and exception block we say x is equals to input please enter a number. Here it is a break except value error. So again if we enter a character which is not a number it will raise a value error and goes on because why this is true. Try and accept statement by try and accept statement we can handle the exceptions. In try block we have defined some function. If this function returns an error we can catch it in the accept block here and then we can handle it here. But in normal cases if we have not put our statement in try and accept block and just have written x equals to input this or anything user defined function and it will return an exception. It will return an exception as we have pointed out earlier. Syntax error or 10 by 10 into 1 by 0 division by this error. The try statement works as follows. First the try clause between the try and accept keywords are executed. If no exception occurs the accept clause is skipped and the execution of the try statement is finished. If an exception occurs during the execution of try clause the rest of the clause of try is skipped then it is try matches with the exception name after the accept keyword. So, there are number of building exception maybe value exception or keyword hint of exception. So, we can define accept of value error pull on. So, if the exception type in the try block matches with any of the accept keywords it will catch by the accept block and execution of the try except will executed and execution of the try will be pulled on. If an exception occurs this does not match the exception named. So, we can say we have only mentioned an accept value error but the exception of the keyword interrupt error. So, if try gives an keyword interrupt error so it will not match any of the exception value error. So, what will happen because handle is not found it is unhandled exception and execution stops with a message as shown over. Lastly the key points about python is that that indentation matters to code meaning because block in python block structure is indicated by indentation. First assignment to a variable creates it. So, variable types do not need to declared because here the variable types is not integer, float or something like that. The first thing we say x equals to 3. So, it creates and declared both x and define its value as equal to 3 which is a numeric value 3. Assignments in python is through us equal to and comparison is equal to equal to same is for any other comparison. For numbers we expect to use plus subtraction multiplication division are expected and special use of our plus our first string in addition to equal strings of sequence merging and this can be used for string probiting. Logical operators are words here logical operators are and or not and not symbols and the basic printing commands is python is printed. So, this is all we have to say. Now, Shivji will tell you about the Django framework or this is a web development framework of python. This is the mic mic. Django is a web framework and it is all python and python html csr javascript. So, core is all python and this is the outline of our ppt and we both are going to cover all these points. First of all introduction. So, it is Django and the second point Django is a high level python web framework that increases rapid development and lead pragmatic design means it is based on python. So, python is created by programmers. So, programmers are really want to control what they are doing. So, they just do not want to put anything extra in logic is clear. So, Django also has all python miss and it all qualities of python. So, it is rapid development means you do not have to do anything more than what you want. So, you do not want to do anything that you do not want to do miss you are just want to put you what you want in very limited number of sentences. Means and it is clean all all our properties of python miss it is all python. So, the web framework for perfect miss with deadline miss those are programmers which are perfect miss by nature. So, they created this movie they want to implement some web application as early as possible. This the Django was created by a news agency which news agencies are very prone to changes. So, they want it to be fast like they want to develop something new. So, it is not going to affect what they are using and they are going to it is modulate like you want to do something new. So, you just put it like a application or there is a project and there is application. So, you will you will you can create a new application and everything is available like there are so many things like admin interface. So, many modules are already presented. So, primary focus miss dynamic database driven everything that a framework should have in Django. Content based websites they are normal they can be. And examples like Washington Post eBay Craigslist are using it Google App Engine also using it Django. And you heard about MVC isn't better model view and controller. But in case of Django it is also divided into five things like view is divided into views and templates. Means you can also separate your what is going to be rendered is separated by what is your business logic. Your all logic is goes into the views, but what you are going to render these goals in the templates. And models models are those where you define your schema means if there is a student and student has a profile. So, you are going to define something like student has a name, roll number, email. So, everything is defined in models like whatever you want to do with what you want to have in the database. Corresponding that those are classes you can define. And views are I told views are business those views contain business logic of your web application. Like you are going to be put something in the like you want to do something with the profile thing. Means you want to a simple like you want to have you want to handle forms like somebody's login. Somebody is trying to login on login page. He puts his username and password. Then the thing that is in the templates is just username and password. But everything that like it matches with the database where is the this valid or not goes in the views. Templates templates are just HTML with some template text that provided by Django. Means you have something you are passing something from views like name name of a person. So, name is a variable you are passing and that variable you can show in templates by using template text. That are going to be covered by text as cover in a simple application. Controller control is the control you know a heart of the framework. This is it handles everything like request responses which face going to be rendered on which request which method is going to be called. All things are handle write and Django has two things in this one is settings file. Settings.py file and urs.py file. So, though both are part of a controller both acts as a controller for Django. And this is the architecture like this is a client and he puts a request and this whole thing is Django. Means request comes and request comes to urs. Urs decide if person is putting something urs slash some admin putting admin or slash. Means there is a setting for there is a line which tells Django which method to call. Which view to in view which method to call to handle this urs. So, urs has handling of the urs and then it goes to views. Views has that definition that method that renders that HTML and passes some data. Everything you do everything you want to do with the data and pass it to the template. And that goes to the templates you and you done everything you want to do and just pass the templates. And views as models connected with models means you have a profile. And you want to if somebody is submitting a form like name, roll number, email id. Then that goes to the view and view pass it to the. In view you define updates this objects this update profile. If person put that data it goes to the update some is method like profile dot objects dot all or you get the objects and you update that there are objects corresponding to models. This is a profile profile is a class. Class is objects. So, you can call and save an update delete or something everything you want to do with models. And then views and the response to make the client. So, why Django for web developers? So, this you heard about Ruby on Rails or Laravel in PHP. So, all have the same MVC, but in case of Django modularity is increased means you divided views also you divided controller also means you have more control over what you want this. So, this is flexible more flexible than others. Provides auto generated web admin means it already contains a module which provides interface you update, create, read, delete everything that has in the database like corresponding to profile there is a name roll number email. So, you can using that interface which rendered on your browser you can delete a user update user's name everything. So, it is already provided by Django. Pre-package API for commanding means I have told model saves objects. So, you can call them by you initiate the object and you call like everything is you call u dot updates user u equals to say I set profile equals to something profile dot objects dot all then I want to do something with those objects. So, it has all objects you can update delete or something. So, provides you template system to define HTML template for your pages to avoid code application means there is a you can inherit templates also means you have a base dot HTML file and in if you do not want to put header or footer in every HTML page. So, you create a base dot HTML and you inherit dot those blocks like block header. So, every header is there and block footer is there. So, if you want to create another index dot HTML file. So, you extend you put extend base dot HTML and if whatever you want to do with the like header you want to something put hydring something you want to put new in the header or something in the footer. So, you just extend or you put whatever you want on database. So, you do not want to repeat yourself every time to make templates. So, allows you to define what you are a before a given function means it is all on you what you are going to be what just if you define something you are a admin. So, you can have your freedom you can call any function like index URL does not have to be a function name index. So, it is freedom you can put any index as index can as a name with views. So, it is all freedom you can allows you to separate business logic from the HTML means I have already told views are divided into views and templates. So, use contains your all business logic and this contains all your rendering things. So, all separated everything is python. So, schema you do not have to do anything else you just python and these are the modules which provided by already provided by Django means you can use these modules and if you do not want to use you can create your own. So, these are you can modify them also on flight like you want something to add in admin. So, there is freedom to add something and you want to you want your you define something some model and you want to add in the you want you flexibility to update delete something those entries. So, you register your models to the admin panel. So, those can be available to you. So, this is administration and authenticated system is Django already provides you the basic authenticated system where user you do not have to write like log in and log out methods are already present you just have to include in your templates. Forms and command system command system is you want you want to just you have to include it it is available. Form sending like when you write in HTML you just declare forms like form as something input type something text input type email. So, you do not have to put this in HTML you can put it in another file py file forms.py and you declare that there is form name profile. This you want to some body's data some person is going to put data like that form has to have name emails hold it. So, you define it there in forms.py and just you have to pass it to the views pass it to template and you just have to include it in your template and all form is going to be rendered and you have flexibility to modify it like you do not want to label like this do not want the you have input type this you can change everything. Sessions also provided by Django and this syndication framework RSS you know RSS means if there are weekly updates daily updates. So, you can have like if you are using if you are creating a blob in on Django. So, you can you can provide a man where people can have updates like you are you created a post and somebody subscribe to your RSS then they can have your excerpt of the post on their field. Caching is like you want to get some variables on the client side. So, you can define like memory caching over disk based caching. So, whole thing is for it internationalization localization or like in India we have different languages. So, you can already included you can have different site in different languages. So, in Hindi Punjabi custom middleware is there is a for everything like ending templates it says a middleware means how it handles templates. So, if you do not want like I do not want this ending. So, you can create your custom. Now, Abhishek is going to explain you a simple application and what are going to be done. Abhishek Shukla and I am going to explain you how to create a new project. So, this is the main topic and you have to listen it very carefully. And if you want to note it down. So, you can note it down because without these steps you cannot create your project or your application. So, these are the steps. First is create a project start an application. I am going to explain you later. Create database by SQL or SQLite. Define database settings in satisfy. Define your models at pluggable models. Write your templates define your views create your development test application and end of the day you have to deploy your application. Now, I am going to explain it one by one. Next. So, this is the first command the python is installed in your open to system. So, you have just you have to install Django. So, this is a command pip install Django. So, if pip is not found in your system. So, you have to just if you are using open to. So, you have to just write pseudopity get python python pip. So, first you install the pip then this command will run pip install Django after that start project. So, when you install Django. So, these settings in these files manage.py and SQLite DB and my project. It's already it's going to be created. So, here let's see my project name is my project. So, the second command Django admin.py start project and project name. So, this will create your project. Here you can see the tree of my project. So, and then go to the project my project directory and create your app. So, here my app name is my app. So, then you have to run command python manage.py start app my app. So, this is a tree structure of this Django framework. So, first of my my project my project you there is a manage.py which does all the things. Then my app my app is the my app which I have created inside my project. You can create so many app how much you how many you want to install. And then the my project inside actually my project is a project name. And inside project there is a my project folder also. So, in my project folder there is a URL and settings.py which is the controller. So, in this file you can set up your whole projects setting.py and URL. These are the basic more important file. And the last one is a template which I have created template in my project folder. And there is a index.stable which is my rendering page. So, next this is the settings by my friend Shivji told earlier model view controller. So, this comes under the controller settings.py when you created your project. So, you have to just mention your installed app my app. So, these are the by default when you create you install the Django. These are the by default directories, but you have to mention my app installed app. And second one is the database. Database here I am using the SQL line you can use my SQL and whatever you want to use. So, if you are using my SQL to here backend dot my SQL name is path of the my SQL database. And here is your database name, but if you are using my SQL. So, you have to mention also username, password, port, port number. These are the things you have to mention in your settings.py. Model.py this comes under the model view controller. So, here is comes a model. Model is nothing but your database schema. So, here I am going to dv.models. This is a model predefined models from the Django framework. So, here I am only just creating the model. This is the syntax of creating table actually. This is a class profile. Profile means here I am creating the table and table name is my app underscore class name. So, here I am creating the table my app underscore profile and it consists of these fields. Means name, row number, experience and email ID. And these are the classes of Django which have declared care field and integer field, text field and email and email field. So, you just write it down if you want to use whatever your name is character or text or integer you want to. So, here these are the arguments which is the by default maximum limitation means max length, minimum length and null equals to true. So, if you want to in null, if you want to use null equals to true or not. So, you can mention here. So, these are the model. After creating this file you have to remember this command python manage dot py make migration my app. My app is the name of your app. So, when you create this file so you have to run this command make migration. Make migration which going to do actually it creates a python file and with the SQL commands. So, when you run this command so it creates the python file and after that python manage dot py migrate. So, when you fire this command migrate so that python file which already created it runs again and it creates a database table. So, if you run this command python migrate. So, it will create the profile table with these fields and these fields have the this character field in field email id and roll over views. This is the actually comes under the template template has the two things one is the business logic and second is the HTML page. So, first is the this is the business business logic. So, here I am importing my table my app dot mobile import profile profile is my table name. And this is the Django shortcut render to response. This is also module to rendering the page. So, here I am just declaring the function index you can do whatever you want to do any name I am using this index. So, here the profile profile dot object dot all. This is the nothing but the ORM object relation model. So, I am using that command profile dot object dot all it is actually binds all it is takes all the object which is in the profile in the profile table. So, I am taking all the objects in the profile variable name and this one is the context. Context is nothing but the dictionary. So, I am taking all variables and put into the profile is a tree word and profiles is a variable name. So, I am going to send the return this function is returns this context and which is written to response. This context is dictionary going to my index dot HTML page with this context dictionary. And context dictionary consists of only here profile means all object from my profile table. So, this one is the URL. URL again comes under the controller. Controller has two files one is the setting dot pi and second one is the URL. So, I have told you database and the database and you have to mention it setting dot pi and second is the URL. URL may this is the admin panel. So, when you install Django. So, this one is the by default. So, here I am only just import my index which I have index function which I have declared in my views. And this is the URL which I am going to give you when you run this command run this approach. So, this is the regex regex of index. So, first phase this is going to show. So, import index and I am using that means if this means if this regex regex is matches. So, it will call this function index or index is which I have declared in the views and views it is going to render your index dot HTML file. So, again settings setting which file is going to be rendered. So, I have declared my templates folder. So, here you have also mentioned your templates directory. So, this is my best directory and best directory also have templates this is created by me. So, here you have to mention in templates in setting dot pi. So, this is my index dot HTML. So, index dot HTML actually I have sent my profile as my context dictionary. So, here I am using that profile and getting all those profile names. So, these are the Django template syntax. So, you have to much remember this otherwise it is shown an error. So, curly braces and after that you have to percent sign. Here I am using the follow actually I am rendering the all the value in tabular format. So, these are the my headings and I am using follow in my profile profile is nothing but the context dictionary. This is the key of dictionary. So, and you are using when the variable. So, you have to just put double curly braces. So, profile is the my for the profile dot name first profile dot experience profile dot email these are the column name. And you have to also mention there when it is the follow. So, mention in otherwise it is shown an error and after that after you creating these. So, you have to run this command python manage dot pi run server. Actually it to be by default it runs on the 127 dot 0 dot 1 colon 8000. If you want to do if you want to give another port or another IP address. So, you have to just mention from here run server that a port is available. So, it is no problem if it does not it shows an error if the port is not available. So, here is the by default port or I am using that for and this is your rendering page on your browser. This is the 127 dot 0 colon and this is the index page. So, these are the values which is stored in database and using HTML. I am using these value and render in my HTML page. So, this is this is main how to you can create the project and your application this is all.