How to make an assignment software with Django? OR How to make the Django project Explain step by step?
😀 How to make an assignment software with Django? OR How to make the Django project Explain step by step?😁
Here How to make an assignment software with Django? OR, How to make a Django project Explain step by step to help you make the new
concepts, you are learning to program
Languages were really very important.
Prerequisites: Set up a Django development environment.
Objective: To be able to use Django's tools to start your own new website projects.
Initial Set-Up
To begin, navigate to a new directory on your computer. For example,
we can create a HelloWorld folder on the Desktop with the following commands.
$ cd ~/Desktop
$ mkdir helloworld && cd helloworld
Make sure you’re not already in an existing virtual environment at this point.
If you see text in parentheses () before the dollar sign ($) then you are. To exit it, type exit and hit Return. The parentheses should disappear which means that the virtual environment is no longer active.
We’ll use pipenv to create a new virtual environment, install Django, and then activate it.
$ pipenv install django~=3.1.0
$ pipenv shell
If you are on a Mac you should see parentheses now at the beginning of your
command-line prompt in the form (helloworld). If you are on
Windows you will not see a visual prompt at this time.
Create a new Django project called config making sure to include the period (.)
at the end of the command so that it is installed in our current directory.
(helloworld) $ Django-admin start project config.
If you use the tree command you can see what our Django project structure now looks like. (Note: If the tree doesn’t work for you, install it with Homebrew: brew install tree.)
(helloworld) $ tree
.
├── Pipfile
├── Pipfile.lock
├── config
│ ├── __init__.py
| ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py
1 directory, 8 files
The config/settings.py file controls our project’s settings, urls.py tells Django which pages to build in response to a browser or URL request, and wsgi.py, which stands for Web Server Gateway Interface, helps Django serve our eventual web pages.
The manage.py file is used to execute various Django commands such as running the local web server or creating a new app. Last, but not least, is the asgi.py file, new
to Django as of version 3.0 which allows for an optional Asynchronous
Server Gateway Interface to be run.
Django comes with a built-in web server for local development purposes
which we can now start with the runserver command.
(helloworld) $ python manage.py runserver
If you visit http://127.0.0.1:8000/ you should
see our familiar Django welcome page.
..............................................................................................................
Create An App
Django uses the concept of projects and apps to keep code clean and readable. A single
Django project contains one or more apps within it that all work together to power a web application. This is why the command for a new Django project is the start project.
For example, a real-world Django e-commerce site might have one app for user
authentication, another app for payments, and the third app to power item listing details:
each focuses on an isolated piece of functionality. What are three distinct apps that all live within one top-level project?
How and when you split functionality into apps is somewhat subjective, but
in general, each app should have a clear function.
Now it’s time to create our first app. From the command line, quit the server with Control+c. Then use the startapp command followed by the
name of our app, which will be pages.
(helloworld) $ python manage.py startup pages
If you look again inside the directory with the tree command you’ll
see Django has created a pages directory with the following files:
(helloworld) $ tree
├── pages
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
Let’s review what each new pages app file does:
admin.py is a configuration file for the built-in Django Admin app
apps.py is a configuration file for the app itself
migrations/keep track of any changes to our models.py file so
our database and models.py stay in sync
models.py is where we define our database models which Django
automatically translates into database tables
tests.py is for our app-specific tests
views.py is where we handle the request/response logic for our web app
Even though our new app exists within the Django project, Django doesn’t “know”
about it until we explicitly add it. In your text editor, open the settings.py file and scroll down to INSTALLED_APPS where you’ll see six built-in Django apps already there. Add our new pages app at the bottom:
# config/settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'pages', # new
]
Don’t worry if you are confused at this point: it takes practice to internalize how Django projects and apps are structured. Over the course of this book
we will build many projects and apps and the patterns will soon become familiar.
URLs, Views, Models, Templates
In Django, at least three (often four) separate files are required to power one single page.
Within an app, these are the urls.py file, the views.py file, the models.py file, and finally an HTML template such as index.html.
This interaction is fundamental to Django yet very confusing to newcomers so let’s map out the order of a given HTTP request/response cycle. When you type in a URL, such as https://djangoforbeginners.com, the first thing that happens within our Django project is a URL pattern is found that matches the homepage. The URL pattern specifies a view which then determines the content for the page (usually from a database model) and then ultimately a template for styling and basic logic. The end result is sent back to the user as an HTTP response.
The complete flow looks something like this:
URL -> View -> Model (typically) -> Template
Remember how I said it can take three or four files for a given page? That’s because a model is not always needed, in which case three files are enough. But generally speaking, four will be used as we’ll see later in this book.
The main takeaway here is that in Django views determine what content is displayed on a given page while URLConfs determine where that content is going.
The model contains the content from the database and the template provides styling for it.
When a user requests a specific page, like the homepage, the urls.py file uses a
regular expression to map that request to the appropriate view function which then returns the correct data. In other words, our view will output the text “Hello, World” while our URL will ensure that when the user visits the homepage they are redirected to the correct view.
To see this in action, let’s start by updating the views.py file in our pages app to look as follows:
# pages/views.py
from Django.HTTP import HttpResponse
def homepage view(request):
return HttpResponse('Hello, World!')
Basically, we’re saying whenever the view function homepage view is called, return
the text “Hello, World!” More specifically, we’ve imported the built-in HttpResponse method so we can return a response object to the user. We’ve created a function
called homepage view that accepts the request object and returns a
response with the string “Hello, World!”
Now we need to configure our URLs. Within the pages app, create a new urls.py
file which on a Mac can be done with the touch command; Windows users must create the file within a text editor.
(helloworld) $ touch pages/urls.py
Then update it with the following code:
# pages/urls.py
from Django.URLs import path
from .views import homepage view
urlpatterns = [
path('', homePageView, name='home')
]
On the top line, we import a path from Django to power our URL pattern and on the next line, we import our views. By referring to the views.py file as .views we are telling Django to look within the current directory for a views.py file and import the view homepage view from there.
Our URL pattern has three parts:
a Python regular expression for the empty string ''
a reference to the view called homepage view
an optional named URL pattern called 'home'
In other words, if the user requests the homepage, represented by the empty string '', then use the view called homepage view.
We’re almost done at this point. The last step is to update our config/urls.py file.
It’s common to have multiple apps within a single Django project, like
pages here, and they each need their own dedicated URL path.
Update the existing config/urls.py file as follows:
# config/urls.py
from django.contrib import admin
from Django.URLs import path, include # new
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('pages.urls')), # new
]
We’ve imported include on the second line next to the path and then created a new URL pattern for our pages app. Now, whenever a user visits the homepage they will first be routed to the pages app and then to the home page view.
This need for two separate urls.py files is often confusing to beginners. Think of
the top-level config/urls.py as the gateway to various url patterns distinct to each app.
Hello, World!
We have all the code we need now. To confirm everything works as expected, restart our Django server:
(helloworld) $ python manage.py run server
If you refresh the browser for http://127.0.0.1:8000/ it now displays the text “Hello, world!”
Conclusion-In this tutorial you will have to learn How to make an assignment software with Django?
OR How to make Django project Explain step by step Programming Language,
So hope you liked these tutorials. If you have any questions or suggestions related to Django, please comment below and let us know.
Finally, if you find this post informative, then share it with
your friends on Facebook, Twitter, Instagram.
Thank you...
Comments
Post a Comment