在Python和Django上创建一个项目
整理Django项目的创建和添加应用程序。
※ 2020年4月29日更新
创建一个项目
我們將創建一個名為「mysite」的項目。
$ django-admin startproject mysite
$ cd mysite
试着动一动。
$ python manage.py runserver
当您访问http://127.0.0.1:8000时,火箭将起飞。
在Django3中,你也可以通过ASGI来运行。
$ pip install gunicorn uvicorn
$ gunicorn -k uvicorn.workers.UvicornWorker mysite.asgi:application
第一步
在创建项目时,以下目录/文件将被创建。
mysite
│ manage.py
└─mysite
asgi.py
settings.py
urls.py
wsgi.py
我将编辑「settings.py」文件。
(1) 配置以使用Django模板
将「TEMPLATES」进行如下更改。
・・・
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
# 'DIRS': [],
'DIRS': [
os.path.join(BASE_DIR, 'templates'),
],
(2)配置以使用静态文件的设置
在中文中,只需要给出一个选项:
添加STATICFILES_DIRS。你可以把它放在”STATIC_URL”的下面。
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
(3) 如果要将数据库更改为PostgreSQL。
将「DATABASES」进行如下编辑
・・・
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'djangodb',
'USER': 'testuser',
'PASSWORD': 'secret',
'HOST': 'localhost',
'PORT': '5432',
}
}
(4) 创建目录。
在项目的根目录下创建”templates”和”static”文件夹。
mysite
│ manage.py
├─mysite
│ │ asgi.py
│ │ settings.py
│ │ urls.py
│ │ wsgi.py
├─static
└─templates
更改LANGUAGE_CODE和TIME_ZONE。
・・・
LANGUAGE_CODE = 'ja-JP'
TIME_ZONE = 'Asia/Tokyo'
将应用程序添加到项目中。
(1) 在项目中添加应用。
执行以下命令,添加一个名为(myapp)的应用程序。
$ django-admin startapp myapp
以下的目录/文件如下所示
mysite
│ db.sqlite3
│ manage.py
│
├─myapp
│ │ admin.py
│ │ apps.py
│ │ models.py
│ │ tests.py
│ │ views.py
│ │ __init__.py
│ │
│ └─migrations
│ __init__.py
│
├─mysite
│ │ asgi.py
│ │ settings.py
│ │ urls.py
│ │ wsgi.py
│ └ __init__.py
│
├─static
└─templates
将urls.py文件添加到应用程序中,并按照以下方式进行编辑。
from django.urls import path
from . import views
app_name = 'myapp'
urlpatterns = [
path('', views.index, name='index'),
]
├─myapp
│ │ admin.py
│ │ apps.py
│ │ models.py
│ │ tests.py
│ │ urls.py
│ │ views.py
(3) 将views.py文件进行如下编辑
from django.http import HttpResponse
def index(req):
return HttpResponse('Hello World')
添加myapp的路径到mysite/urls.py文件中。
from django.contrib import admin
from django.urls import path, include # includeを追加
urlpatterns = [
path('myapp/', include('myapp.urls')),
path('admin/', admin.site.urls),
]
在mysite/settings.py中添加myapp。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp', # 追加
]
让我们确认一下,只要输出”Hello World”就可以。
$ python manage.py runserver
$ curl http://127.0.0.1:8000/myapp/
Hello World
使用Django模板
使用Django模板创建一个显示HTML的应用程序
(1) 在项目中添加应用程序
django-admin startapp myapp2
将urls.py添加到应用程序中,并进行如下编辑。
from django.urls import path
from . import views
app_name = 'myapp2'
urlpatterns = [
path('', views.index, name='index'),
]
(3) 将 views.py 编辑为以下方式
在使用Django模板时,我们使用render函数。
from django.shortcuts import render
def index(request):
return render(request, 'myapp2/index.html')
(4) 和 (5) 与前述相同,因此省略。
(6) 添加 HTML。
当使用 CSS 文件等时,需要使用 “{% load static %}” 进行声明,并在 link 标签中添加 “{% static ‘css/styles.css’ %}” 等类似的内容。
{% load static %}
<!DOCTYPE html>
<html lang="ja">
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<link rel="icon" href="#">
<link href="{% static 'css/styles.css' %}" rel="stylesheet">
<title></title>
</head>
<body>
hello djnago template
</body>
</html>
以下目录/文件的结构如下
├─static
│ ├─css
│ │ styles.css
│ └─js
└─templates
└─myapp2
index.html
我们来确认一下,HTML是否能够正确显示。
$ python manage.py runserver
$ curl http://127.0.0.1:8000/myapp2/
这次到这里为止。