Django操作的一系列步骤

首先

这是我个人使用的备忘录。

项目相关操作

创建项目

python manage.py startproject mysite

应用程序相关操作

创建应用程序

python manage.py startapp games

安装应用程序

需要教导Django如何添加应用程序。

(省略)
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'games', #ここに追記
]
(省略)

定义模型。

在应用程序中添加模型。
与Rails不同,只有import语句会自动生成,所以需要自己从头开始编写它们。

from django.db import models

class Game(models.Model): #モデル名は単数形で!
    title  = models.CharField(max_length=200)

    def __str__(self):
        return self.title

创建迁移

根据模型定义创建迁移。
指定要创建迁移的应用程序。

python manage.py makemigrations games
Migrations for 'games':
  games\migrations\0001_initial.py
    - Create model Game

在管理员网站上激活模型

当您访问管理网站时,您将能够编辑模型。

from django.contrib import admin

from .models import Game

admin.site.register(Game)

设置URL映射

首先,在mysite的urls.py文件中添加一个对games.urls的引用。

from django.urls import path, include
from django.contrib import admin

from django.contrib.auth import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('accounts/login/', views.LoginView.as_view(), name='login'),
    path('accounts/logout/', views.LogoutView.as_view(next_page='/'), name='logout'),
    path('games/', include('games.urls')),
]

接下来,在games的urls.py文件中添加URL映射。

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

视图定义

from django.shortcuts import render

from .models import Game

def index(request):
    games = Game.objects.all
    return render(request, 'games/index.html', {'games': games})

模板的定义

{% extends 'games/base.html' %}

{% block content %}
    {% for game in games %}
        <div class="game">
            <div class="title">
                <p>title: {{ game.title }}</p>
            </div>
        </div>
    {% endfor %}
{% endblock %}
{% load static %}
<html>
    <head>
        <title>Django Girls blog</title>
        <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
        <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">
        <link href='//fonts.googleapis.com/css?family=Lobster&subset=latin,latin-ext' rel='stylesheet' type='text/css'>
        <link rel="stylesheet" href="{% static 'css/games.css' %}">
    </head>
    <body>
        <div class="page-header">
            <h1><a href="/">Hello Django</a></h1>
        </div>
        <div class="content container">
            <div class="row">
                <div class="col-md-8">
                {% block content %}
                {% endblock %}
                </div>
            </div>
        </div>
    </body>
</html>
广告
将在 10 秒后关闭
bannerAds