使用Django2.0创建博客(第一部分)
这是对djangogirls进行进一步简化和归纳,并稍作补充的版本。
索引
-
- Django2.0でブログの作成(その1)
-
- Django2.0でブログの作成(その2:タイトルと本文の表示)
-
- Django2.0でブログの作成(その3:記事表示ページ)
-
- Django2.0でブログの作成(その4:記事へのコメント)
-
- Django2.0でブログの作成(その5:コメントを削除)
-
- Django2.0でブログの作成(その6:記事の作成)
-
- Django2.0でブログの作成(その7:記事の編集)
-
- Django2.0でブログの作成(その8:記事の削除)
-
- Django2.0でブログの作成(その9:記事の検索)
- Django2.0でブログの作成(その10:ユーザーログインページ)
虚拟环境
-
- virtualenv使用
- django2.0を入れる
准备
-
- プロジェクトの作成
-
- アプリの作成
- 基礎となるsetting.pyの編集
首先,创建一个名为hogeproject的目录。
然后,创建一个任意名称的文件,并进入其中。
cd hogeprogect
创建项目(mysite)
使用django-admin命令创建项目mysite。
如果没有句点,则在mysite中再次创建mysite。
这种情况下可以不执行mkdirhogeproject命令。
mysite可以是任意的名称。
2. 制作一个应用程序(博客)。
在中国本土的一个选择中,重述以下内容:
python manage.py startapp blog
可以使用任何名称的blog。
编辑setting.py
只需更改相应部分。
(略)
ALLOWED_HOSTS = ['127.0.0.1', 'localhost']
(略)
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog' #アプリ名を追加
]
(略)
LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'
(略)
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static') #画像などに使用するstaticfileの追加
建立数据库
-
- models.py or forms.py 作成
-
- makemigrations
-
- migrate
- この順番は鉄則!
创建models.py
from django.db import models
from django.utils import timezone
class Post(models.Model):
author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
title = models.CharField(max_length=200)
text = models.TextField()
created_date = models.DateTimeField(
default=timezone.now)
published_date = models.DateTimeField(
blank=True, null=True)
live = models.BooleanField(default=False)
class Meta:
ordering = ['-created_date']
def publish(self):
self.published_date = timezone.now()
self.save()
def __str__(self):
return self.title
如果什么都不做的话,返回的是title
“类别元:是默认设置。
created_date 带有负号,所以顺序相反。
换句话说,最新的在上面。这是一种设置。”
进行数据迁移
用Python执行”manage.py makemigrations blog”命令,将会创建一个用于更新数据库的.py文件。在这个命令中,”blog”是指定的应用程序名称。
3. 迁移
使用先前创建的.py文件,更新数据库。
请记住:makemigrations 和migrate 是一起进行的。
创建用户
from django.contrib import admin
from .models import Post
admin.site.register(Post)
在创建这个之后,在终端中创建超级用户。
python manage.py createsuperuser
-
- usename
-
- e-mail
-
- password(半角英数混在8文字以上)
- password(確認)
既然现在可以创建超级用户了,就尝试访问localhost:8000/admin并登录吧。如果成功,我们可以添加一些帖子。
创建页面
首先,不管什麼情況都按照以下的方式進行。
第二點-一定要完成全部的(雖然有例外的情況)views→urls→html的步驟。
準確來說,順序並不重要。
只要修改這三個要素中的任何一個就可以(有時還需要添加或修改models,forms,admin)。
為了方便理解,這次按照全部是views→urls→html的順序進行。
-
- ①views.py
-
- ②urls.py
- ③html作成
视图.py
from django.shortcuts import render
def post_list(request):
return render(request, 'blog/post_list.html', {})
2.网址.py
第一次必须更改父母的urls.py!
from django.contrib import admin
from django.urls import path, include #include追加
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls')), #この行追加
]
这样,包括了子/urls.py。
每次都要更改子的url.py!(最初不会自动创建,需要手动创建)
from django.urls import path
from . import views
app_name = 'blog' #django2.0から必要になったnamespace定義
urlpatterns = [
path('', views.post_list, name='post_list'),
]
创建一个HTML文件
创建模板/templates/blog/post_list.html
<html>
<head>
<title>Ola's blog</title>
</head>
<body>
<p>Hi there!</p>
<p>It works!</p>
</body>
</html>