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>