django-admin startproject 項目名
python manage.py startapp 子應用名
python manage.py runserver 運行項目
在setting文件中配置模板
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],# 模板配置
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
{ {}} for if
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp', # 注冊子應用
]
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 使用mysql數據庫
'HOST': 'localhost', # 主機
'PORT': 3306, # 端口
'USER': 'root', # 用戶名
'PASSWORD': 'root', # 密碼,根據自己的密碼來
'NAME': 'game', # 數據庫
}
}
在與項目同名的init.py文件中添加以下代碼
import pymysql
pymysql.install_as_MySQLdb()
在子應用的models.py文件中編寫代碼
from django.db import models
class Game(models.Model):
# CharField 字符串 max_length 最大長度 verbose_name 後台管理的字段名
name = models.CharField(max_length=20, verbose_name='角色名')
# IntegerField 整型
atk = models.IntegerField(verbose_name='攻擊力')
level = models.IntegerField(verbose_name='等級')
class Meta:
db_table = 'game'
verbose_name = '游戲信息表'
verbose_name_plural = verbose_name
def __str__(self):
return self.name
生成遷移文件:python .\manage.py makemigrations
執行遷移:python .\manage.py migrate
在子應用的views.py文件中編寫視圖代碼,來處理業務邏輯
def MyView(request):
# return HttpResponse('<h1>這是我的第一個視圖</h1>') # 返回一個相應
content = {
# 傳遞給頁面的數據,格式是字典
'money': 100,
'scores': [100, 99, 95, 80, 85],
'game': {
'name': '龍傲天',
'atk': '999',
'def': '10',
'level': '18',
}
}
return render(request, 'index.html', content) # 返回一個模板頁面
為了讓視圖生效,需要編寫路由代碼
from django.contrib import admin
from django.urls import path
from myapp import views
urlpatterns = [
path('admin/', admin.site.urls),
path('myview/', views.MyView), # 新增路由
]