Django创建应用二

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  命令执行迁移

 

posted @ 2019-12-25 13:37  慕尘  阅读(106)  评论(0编辑  收藏  举报