Django之路第四篇:Models

摘要:
操作{{article.title}}应用修改后的索引。html1<htmllang=“en”>h3>{{article.content}}<11</html>

概述

  • 通常,一个Model对应数据库的一张数据表

  • Django中Models以类的形式展现

  • 它包含了一些基本字段以及数据的一些行为

ORM

  • Django使用了对象关系映射-----ORM(Object Relation Mapping)

  • 实现了对象和数据库之间的映射

  • 隐藏了数据访问的细节,不需要编写SQL语句

编写Models的步骤

  1. 在应用根目录下创建models.py,并引入models模块
  2. 创建类,继承models.Model,该类即是一张数据表
  3. 在类中创建字段

这里就以blog应用为例,编写blog/models.py文件

1 # blog/models.py
2 from __future__ import unicode_literals
3 from django.db import models
4 
5 class Article(models.Model):
6     title = models.CharField(max_length=32,default='Title')
7     content = models.TextField(null=True)

字段创建

  • 字段即类里面的属性(变量)
  • attr = models.CharField(max_length = 64)

生成数据表

1.生成数据表步骤

  • 命令行中进入manage.py同级目录
  • 执行python manage.py makemigrations app名(制作数据迁移准备)
  • 再执行python manage.py migrate(数据迁移开始)

2.查看生成的数据表

  • Django会自动在app/migrations/目录下生成移植文件
  • 执行python manage.py sqlmigrate 应用名 文件id 查看SQL语句
  • 默认sqlite3的数据库在项目根目录下db.sqlite3
  • 推荐下载第三方软件SQLite Expert Personal打开查看db.sqlite3(轻量级,完全免费)

页面呈现数据

1.后台步骤

  • 在数据库中先添加数据
  • 在应用中的views.py中添加 import models
  • 使用 article = models.Article.objects.get(pk=1)获取实例模型
  • 然后使用 render(request,page,{'article':article}) 渲染页面

应用修改过后的views.py

1 # blog/views.py
2 from django.shortcuts import render
3 from . import models
4 def index(request):
5     article = models.Article.objects.get(pk=1)
6     return render(request, 'blog/index.html', {"article":article})

2.前端步骤

  • 模板可直接使用对象以及对象的“.”操作
  • {{article.title}}

应用修改过后的index.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5      <title>Title</title>
 6  </head>
 7  <body>
 8     <h1>{{ article.title }}</h1>
 9      <h3>{{ article.content }}</h3>
10  </body>
11  </html>

当前的工程目录结构

myblog

  |-----blog(应用目录)

    |-----migrations(数据移植模块,内容自动生成)

      |------__init__.py

    |-----templates

      |-----blog

        |-----index.html

    |-----__init__.py

    |-----admin.py(应用的后台管理系统配置)

    |-----apps.py(应用的一些配置)

    |-----models.py(数据模块,类似于MVC结构中的Models(模型))

    |-----tests.py(自动化测试模块)

    |-----views.py(执行响应的代码所在模块)

    |-----urls.py(新增路由文件)

  |-----myblog(项目目录)

    |-----__init__.py

    |-----settings.py(项目中的总配置文件)

    |-----urls.py(URL配置文件)

    |-----wsgi.py(Python应用与Web服务器之间的接口)

  |-----db.sqlite3(数据库文件)

  |-----manage.py(与项目进行交互的命令行工具集入口(项目管理器))

免责声明:文章转载自《Django之路第四篇:Models》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇mysql修改definer方法工具软件 PYUV打开raw图片下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

通过配置tomcat在浏览器访问非项目中的文件

    本人做接口项目时遇到的问题,当我把业务数据通过接口上传给对方后,对方会异步一个反馈数据。 反馈是一个html的静态文件,我可以通过些文件查看上传数据情况,为了查询方便,决定做个查询功能来访问 但我不可能把这么多的反馈文件放到自已的项目目录下,只能放在某个磁盘里,但tomcat是访问不到的,我设了快捷文件夹到我项目中还是没用。     最后在serv...

将 Excel 数据导入 SQL Server数据库

原文:https://docs.microsoft.com/zh-cn/sql/relational-databases/import-export/import-data-from-excel-to-sql?view=sql-server-2017#bulk-insert 适用于:SQL Server(所有支持的版本)  将 Excel 文件中的数据...

Mac系统终端命令行不执行命令解决方法(command not found)

配置过安卓开发环境,改过bash_profile这个文件,最后不知怎么的只有cd命令能执行,我猜测可能修改bash_profile文件后没有保存 导致的     保存命令是: source .bash_profile 说下我的解决方法: 1,在命令行中输入: export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X1...

NoSql数据库CounchDB的介绍

本文可以说是我看过的对 CouchDB 的最全面的介绍。 概述 CouchDB,大家或多或少都听说过。它到底有什么特性,适合哪些应用场景,和我们常用的关系型数据库有什么区别? 这些问题,可能我们心里都不是非常清楚。在以前的Blog中(PS,不是在javaeye哦),我提及了几次CouchDB,但是仅仅限于编译,安装这些浮在水面上的工作。今天抽出时间把最近...

mysql主从复制延迟问题的相关知识与解决方案

一、如何监控发生了主从延迟? 在从库机器上,执行show slave status,查看Seconds_Behind_Master值,代表主从同步从库落后主库的时间,单位为秒,若同从同步无延迟,这个值为0。 Mysql主从延迟一个重要的原因之一是:mysql是以单线程串行执行。 主从复制数据时,在从服务器上的mysql,是一个线程在同步数据。 串行的方式,...

MySQL 新建用户,为用户授权,指定用户访问数据库

1.登录MySQL mysql -u root -p 2.添加新用户(允许所有ip访问) create user 'test'@'%' identified by '123456'; #test:用户名,%:所有ip地址,123456:密码 3.创建数据库 CREATE DATABASE test_db DEFAULT CHARSET utf8mb4...