4.模板页面
4.1 模板页面返回
模板配置
在settings.py文件下找到TEMPLATES,修改DIRS属性
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',
],
},
},
]
创建模板
在根目录下创建templates文件夹,并且在文件夹里创建index.html文件。在index.html文件下创建模板
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>hi</title>
</head>
<body>
<h1>真不错</h1>
<p>
今天这个天气是<strong>晴天</strong>
</p >
</body>
</html>
视图渲染
在views.py文件里定义函数写返回的html的内容
from django.shortcuts import render
def index(request):
return render(request, 'index.html')
4.2 模板变量渲染
在views.py文件里简单定义变量,再把值返回给index.html文件里例如像:
views.py里定义再返回
from django.shortcuts import render
def index(request):
money : 100
return render(request, 'index.html',money)
index.html接收
<p>我兜里有{{money}}元</p >
模板语句循环,分支
for标签
某小组各个成员的分数为:
{% for score in scores %}
{{ score }}, #循环列表
{% endfor %}
游戏角色信息:
{% for key,value in game.items %}
{{ key }}:{{ value }} #循环字典
{% endfor %}
if标签
{% if money > 200 %}
你真是个有钱人
{% else %}
你好像有点穷
{% endif %}
5.静态资源
5.1 静态资源的概念
用来装饰页面
5.2 静态资源的路径配置
在根目录下创建static文件夹,并在settings.py文件里找到STATIC_URL,在它的下边配置路径
STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR,'static')]
# STATICFILES_DIRS 该配置项用来告诉 django 在查找静态资源时,应该访问哪个目录
5.3 静态资源模板使用
有图片,直接在模板里引用,在index.html里修改
<!DOCTYPE html>
<html lang="en">
{% load staticfiles %}
<head>
<meta charset="UTF-8">
<title>hi</title>
</head>
<body>
<h1>{{ message }}</h1>
< img src='{% static "img/1.jpg" %}' alt="图片">
</body>
</html>
6.1 ORM映射的概念
ORM映射是Django与数据库之间的桥梁,可以代替sql语句,用过 ORM和APL的接口就可以进行与数据库之间的数据交互
6.2 ORM映射的编写
在app文件夹下的models.py文件里编写数据模型类
from django.db import models
# Create your models here.
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='等级')
在settings.py文件下,找到INSTALLED_APPS 进行配置
INSTALLED_APPS= [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp', #配置
]
数据类型
CharField 字符串
IntegerField 整型
Max_length 最大长度
6.3 生成迁移文件
在settings.py文件下找到DATABASES与数据库进行连接
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': 'localhost',
'PORT': 3306,
'USER': 'root',
'PASSWORD': '123123',
'NAME': 'twoday'
}
}
在终端里运行该命令
python manage.py makemigrations # 创建数据库迁移文件
6.4执行迁移
python manage.py migrate # 根据数据库迁移文件生成对应 SQL 语句并执行