I used Django, the popular Python framework, for the first time. This time, I referred to the official Tutorial.
Reference: Django Documentation
This time, we'll use virtualenv to create a virtual environment for Django (Python version 3.5.1).
$ pyenv virtualenv 3.5.1 django
Move to the directory used during development and set the virtual environment you just created.
$ mkdir django
$ cd django
$ pyenv local django
Then install Django using pip
.
$ pip install django
Check if it was installed properly.
$ python -c "import django; print(django.get_version())"
1.9.4
I think I was able to do it.
Refer to Writing your first Django app, part1.
First, create a Django project with the name mysite
.
$ django-admin startproject mysite
If you specify a path after the project name, it seems that you can create it in the specified location (https://docs.djangoproject.com/en/1.9/ref/django-admin/#django-admin-startproject) (I haven't tried it ).
Running this command created a directory called mysite
.
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
Go to the mysite
directory and start the server.
$ python manage.py runserver
After executing the command, access http://127.0.0.1:8000/
with a browser.
The "Welcome to Django" page is displayed properly (I forgot to take a screenshot).
You can also change the IP address or port number by specifying port number
or ʻIP address: port number after
runserver` in the above command.
For the time being, quit the server with Ctrl-C.
Next, we will make an app.
First, create the source for creating the app.
Execute the following command in the mysite
directory.
$ python manage.py startapp polls
You now have a directory named polls.
polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
I will actually write the code from now on.
Change views.py
in the polls
directory you just created as follows.
polls/views.py
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
Create a view (look) when you access localhost: 8080 / polls
with this file (you can't see it even if you access it yet).
It seems that you need something called URLconf to see this. Next we will create this.
Create a new file called ʻurls.pyin the
polls` directory.
Write the following code.
$ vim polls/urls.py
polls/urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index, name='index'),
]
Next, edit ʻurls.py in
mysite, one level above
polls`.
mysite/urls.py
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^polls/', include('polls.urls')),
url(r'^admin/', admin.site.urls),
]
The ʻinclude ()` on the 5th line seems to be used to refer to other URLconf files.
If you can do so, start the server again and check.
$ python manage.py runserver
Access http://127.0.0.1:8080/polls
or http: // localhost: 8080 / polls
with your browser.
If "Hello, world. You're at the polls index." Described in polls / views.py
is displayed, it is successful.
Although not written in the tutorial, if you access http: // localhost: 8080 / admin
here, the administrator login screen will be displayed. We'll talk about this in the next "About url ()" regex.
This is the end of Tutorial 1 for the time being. Thank you for your hard work.
Since there was a description about ʻurl () used in ʻurls.py
, I will write it as far as I can understand.
ʻUrl ()` has four arguments.
url(regex, view [,kwargs, name])
The last two (kwargs, name) are optional.
regex
Regular expression as the name suggests. Specify the URL pattern here.
For mysite / urls.py
,
When it matches r'^ polls /'
→ Refer to the URLconf of polls
When it matches r'^ admin /'
→ See ʻadmin.site.urls`
And so on.
As a test, change ʻurl ()of
polls / urls.py` as follows.
polls/urls.py
:
url(r'^test', views.index, name='index'),
:
Now when I save and start the server again and access http: // localhost: 8080 / polls
, I get a 404 error.
Next, try accessing it by adding a string that matches r'^ test'
(such as test01) to the end of the previous address (example: http: // localhost: 8080 / polls).
Then, as I did in the tutorial, the character string was displayed properly.
In short, the regex pattern determines the address.
view
If the regex of the first argument is matched, the function of this second argument is called. The HttpRequest object is given as the first argument to this function, and all the values obtained from regex are given after the second argument.
I understand that the HttpRequest object is passed, but I'm not sure about the second and subsequent arguments. Will the parameters passed by GET etc. be included ... I hope I can understand it as I go through the tutorial.
Recommended Posts