zoukankan      html  css  js  c++  java
  • 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  命令执行迁移

  • 相关阅读:
    创建索引
    列出所有的索引
    查看集群节点api
    集群健康检查api
    mapping 映射
    Elasticsearch 版本控制
    四种常见的 POST 提交数据方式
    HttpPost 传输Json数据并解析
    基本概念
    信用卡年轻消费群体数据分析和洞察报告
  • 原文地址:https://www.cnblogs.com/baby123/p/12096197.html
Copyright © 2011-2022 走看看