Django组织结构符合 Django 的 MTV 法则——
Model(模型):数据库相关的操作
Template(模版):将数据库数据嵌入html页面中
View(视图):逻辑处理
1.模板
分离文档的表现形式和内容
(1)模板
在跟目录添加 templates
添加 templates/index.html
<h1>{{ hello }}</h1>
说明:
变量使用双括号
(2)配置
修改 settings.py 中,APP_DIRS部分
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [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', ], }, }, ]
(3)修改view.py
from django.shortcuts import render def index(request): context = {} context['hello'] = 'Hello World!' return render(request, 'index.html', context)
启动服务器,http://localhost:8000/
输出
(4)继承
base.html
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>this is a test</title> </head> <body> <h1>{{ hello }}</h1> <p>My Django <p> {% block mainbody %} <p>original</p> {% endblock %} </body> </html>
index.html
{%extends "base.html" %} {% block mainbody %} <p>继承了 base.html 文件</p> {% endblock %}
说明:
{% block %} 标签,子模板可以重载这些部分
模板最常用的语法
表达式
<!-- 单个变量 --> {{ variable }} <!-- 获取字典的键或对象的属性 --> {{ dict.key }} {{ object.attribute }} <!-- 获取列表中的某个元素 --> {{ list.0 }}
条件
{% if is_true %} <h1>It is true!</h1> {% else %} <h1>It is false!</h1> {% endif %}
循环
{% for elem in some_list %} <p>{{ elem }}</p> {% endfor %}
2.模型
Django使用 SQLite 作为默认数据库
(1)创建数据库
python manage.py migrate
检查INSTALLED_APPS 设置,为其中的每个应用创建需要的数据表
根据mysite/settings.py 设置文件和每个应用的数据库迁移文件创建
(2)创建模型
from django.db import models class Articles(models.Model): title = models.CharField(max_length=200) content = models.TextField() author = models.CharField(max_length=50) pub_date = models.DateTimeField('date published')
(3)激活模型
修改settings.py,将自定义的应用blog添加到INSTALLED_APPS
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog', ]
生成Migration,执行
python manage.py makemigrations blog
生成表结构, 执行
python manage.py migrate blog
数据库中
总结:
使用数据库迁移,将定义的模型转换成 SQL 代码(即迁移文件),并在数据库中进行建表操作(或更新表)
步骤:
用 Django 定义数据模型
用 makemigrations 命令创建迁移文件,存储在子应用的 migrations 目录下
用 migrate 命令执行迁移
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/20492.html