Although I touched python for a while, most of time I use it only for data analysis with panda or some machine learning packages. Django as one of most famous webframeworks has been existing for over 12 years. So, I decide to learn it step by step with the official tutorial and share my experience with you.
Prepare Django
# install django
sudo pip install Django
# build project
django-admin startproject {name of site}
# run test
# goto project folder, you will find manage.py, run
python manage.py runserver {port}
Fast explain some of files:
mange.py
: A command-line utility that lets you interact with this Django project in various way.{name of site}
: python package for the projectmysite/__init__.py
: An empty file that tells Python that this directory should be considered a Python package. If you’re a Python beginner, read more about packages in the official Python docs.mysite/settings.py
: Settings/configuration for this Django project. Django settings will tell you all about how settings work.
mysite/urls.py: The URL declarations for this Django project; a “table of contents” of your Django-powered site. You can read more about URLs in URL dispatcher.mysite/wsgi.py
: An entry-point for WSGI-compatible web servers to serve your project. See How to deploy with WSGI for more details.
Create a new app
# add a new app
python manage.py startapp {name of app}
- In each App folder, there are three important python files
- urls.py: controls what is served based on url patterns
- models.py: database structures and metadata
- views.py: handles what the end-user “views” or interacts with
Then we need add the app into setting.py
under the site folder {name of site}
INSTALLED_APPS = [
'{name of app}',
]
And update the urls.py
under the same folder
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('webapp/', include('webapp.urls')),
]
We have Completed all files modification under the site folder. Then we go to app folder to create urls.py and change view.py.
# create a file name `urls.py` under app folder
touch urls.py
# copy this to the file, which directs the request to views.py
# path(route, view, kwargs,name)
# @route: URL pattern
# @view: function name to be called
# @kwargs: argument to be passed in a dictionary
# @name: refer URL with the name
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
# change view.py as
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
After all these done, we can access webapp by http://localhost:8000/{name of app}/