使用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>
广告
将在 10 秒后关闭
bannerAds