Django框架学习---入门-内容复习(2.1)
定义模型类
- 模型类被定义在"应用/models.py"文件中,此例中为"booktest/models.py"文件。
- 模型类必须继承自Model类,位于包django.db.models中。
- 提示:对于重要数据使用逻辑删除。
示例演示
接下来首先以"图书-英雄"管理为例进行演示,复习一下昨天的内容。
1.打开booktest/models.py文件,定义模型类如下
from django.db import models#定义图书模型类BookInfo
class BookInfo(models.Model):btitle = models.CharField(max_length=20)#图书名称bpub_date = models.DateField()#发布日期bread = models.IntegerField(default=0)#阅读量bcomment = models.IntegerField(default=0)#评论量isDelete = models.BooleanField(default=False)#逻辑删除#定义英雄模型类HeroInfo
class HeroInfo(models.Model):hname = models.CharField(max_length=20)#英雄姓名hgender = models.BooleanField(default=True)#英雄性别isDelete = models.BooleanField(default=False)#逻辑删除hcomment = models.CharField(max_length=200)#英雄描述信息hbook = models.ForeignKey('BookInfo')#英雄与图书表的关系为一对多,所以属性定义在英雄模型类中
2.迁移
生成迁移文件。
python manage.py makemigrations
生成迁移文件的时候出现错误,把数据库切换成了mysql,需要安装pymysql模块之后,Django框架才可以操作mysql数据库。安装命令如下:
pip install pymysql
安装成功之后,在test2/*init*.py文件中加上如下代码:
import pymysql
pymysql.install_as_MySQLdb()
然后执行如下命令。
python manage.py makemigrations
python manage.py migrate
打开数据库的命令行,查看当前所有表如下图:
表bookinfo结构如:
默认值并不在数据库层面生效,而是在django创建对象时生效。
表booktest_heroinfo结构如下:
Django框架会根据关系属性生成一个关系字段,并创建外键约束。
3.测试数据
在数据库命令行中,复制如下语句执行,向booktest_bookinfo表中插入测试数据:
insert into booktest_bookinfo(btitle,bpub_date,bread,bcomment,isDelete) values
('射雕英雄传','1980-5-1',12,34,0),
('天龙八部','1986-7-24',36,40,0),
('笑傲江湖','1995-12-24',20,80,0),
('雪山飞狐','1987-11-11',58,24,0);
再复制如下语句执行,向booktest_heroinfo表中插入测试数据:
insert into booktest_heroinfo(hname,hgender,hbook_id,hcomment,isDelete) values
('郭靖',1,1,'降龙十八掌',0),
('黄蓉',0,1,'打狗棍法',0),
('黄药师',1,1,'弹指神通',0),
('欧阳锋',1,1,'蛤蟆功',0),
('梅超风',0,1,'九阴白骨爪',0),
('乔峰',1,2,'降龙十八掌',0),
('段誉',1,2,'六脉神剑',0),
('虚竹',1,2,'天山六阳掌',0),
('王语嫣',0,2,'神仙姐姐',0),
('令狐冲',1,3,'独孤九剑',0),
('任盈盈',0,3,'弹琴',0),
('岳不群',1,3,'华山剑法',0),
('东方不败',0,3,'葵花宝典',0),
('胡斐',1,4,'胡家刀法',0),
('苗若兰',0,4,'黄衣',0),
('程灵素',0,4,'医术',0),
('袁紫衣',0,4,'六合拳',0);
4.定义视图
打开booktest/views.py文件,定义视图代码如下:
from django.shortcuts import render,redirect
from booktest.models import *
from datetime import date#查询所有图书并显示
def index(request):list=BookInfo.objects.all()return render(request,'booktest/index.html',{'list':list})#创建新图书
def create(request):book=BookInfo()book.btitle = '流星蝴蝶剑'book.bpub_date = date(1995,12,30)book.save()#转向到首页return redirect('/')#逻辑删除指定编号的图书
def delete(request,id):book=BookInfo.objects.get(id=int(id))book.delete()#转向到首页return redirect('/')
5.配置url
打开test2/urls.py文件,配置url如下:
from django.conf.urls import include, url
from django.contrib import adminurlpatterns = [url(r'^admin/', include(admin.site.urls)),#引入booktest的url配置url(r'^',include('booktest.urls')),
]
在booktest应用下创建urls.py文件,代码如下:
from django.conf.urls import url
from booktest import viewsurlpatterns=[url(r'^$',views.index),url(r'^delete(\d+)/$',views.delete),url(r'^create/$',views.create),
]
6.创建模板
打开test2/settings.py文件,配置模板查找目录TEMPLATES的DIRS。
'DIRS': [os.path.join(BASE_DIR,'templates')],
创建templates/booktest/index.html文件。
模板代码如下:
<html>
<head><title>复习案例</title>
</head>
<body>
<a href="/create/">创建</a>
<ul>
{%for book in list%}<li>{{book.btitle}}--<a href="/delete{{book.id}}/">删除</a></li>
{%endfor%}
</ul>
</body>
</html>
7.运行
运行服务器。
python manage.py runserver
在浏览器中查看。
操作效果如下图。
在mysql命令行中查看数据表变化如下图:
Django框架学习---入门-内容复习(2.1)相关推荐
- Python学习笔记--10.Django框架快速入门之后台管理admin(书籍管理系统)
Python学习笔记--10.Django框架快速入门之后台管理 一.Django框架介绍 二.创建第一个Django项目 三.应用的创建和使用 四.项目的数据库模型 ORM对象关系映射 sqlite ...
- Django框架学习(一)Django框架安装和项目创建详解
Django框架学习(一)Django框架安装和项目创建详解 文章目录 Django框架学习(一)Django框架安装和项目创建详解 一.简介 1.1介绍 1.2 URL 1.3.框架原理 二.安装 ...
- Django框架快速入门之后台管理admin(书籍管理系统)
Django框架快速入门之后台管理admin(书籍管理系统) 一.Django框架介绍 什么是框架? 软件框架就是为实现或完成某种软件开发时,提供了一些基础的软件产品, 框架的功能类似于 基础设施 , ...
- Python高级-Django框架-01入门
欢迎学习django课程 软件框架 问题1:什么是软件框架? 举个简单的例子,对于一个公司来说,公司中有各个职能部门,每个部门各司其职,通过部门之间的配合来完成工作,这些部门就形成了一个公司的组织架构 ...
- Django框架学习
Django是现在世界上python语言应用最广泛.发展最成熟的web框架.它足够完整 ,不需要依赖其他就可以开发出 非常完整的web应用.Django的主要内容如下: Django综述:了解Djan ...
- Python Web开发——Django框架学习
文章目录 Web开发简介 Web应用技术 Web前端开发 Web后端开发 使用 Django 开发后端服务 项目目标 管理员操作 登录界面 客户管理界面 添加客户界面 药品管理界面 添加药品界面 订单 ...
- Django 框架快速入门
1. Django是什么 Django 是一个高级的 Python Web 框架,它最初是加拿大劳伦斯出版集团用于管理旗下新闻网站内容的设计.它鼓励快速开发和清洁,负责 Web 开发的许多麻烦,因此开 ...
- Django框架之入门介绍
Python下有许多款不同的Web框架.Django(发音:[`dʒæŋɡəʊ]) 是重量级选手中最有代表性的一位,许多成功的网站和APP都基于Django. 作为Python最重要的框架之一,Dja ...
- python的django框架从入门到熟练【保姆式教学】第一篇
当今,Python已成为最受欢迎的编程语言之一.而Django是一个基于Python的Web框架,它能够帮助你快速.高效地开发Web应用程序.如果你是一名初学者,学习Django框架可能会让你感到有些 ...
最新文章
- LeetCode实战:二叉树的最大深度
- 在windows上搭建react-native的android环境
- 【数据结构与算法】之深入解析“两数之和”的求解思路与算法示例
- 大学期末考试SSH试题四
- 表头大小设置_Excel技巧:单线表头及多线表头的制作方法
- Fixed Function Shader
- AJPFX分析int 和integer的区别
- android slidingmenu框架,常用框架之SlidingMenu的使用(基于AndroidStudio)
- 数字签名和加密的基本原理及其区别?
- Python对Excel的操作(openpyxl)
- 虚拟化技术(1)——介绍
- NT平台ADSL拨号连接密码恢复原理
- 【Java · 类加载】类加载器
- Linux驱动开发(十三)---USB驱动HID开发学习(鼠标)
- 土壤数据库一些参数解释和补充说明
- 计算机cpu结构实物图片,cpu内部结构显微图/cpu内部结构放大图
- 女生叫你哥和大哥区别_大哥正望着你
- 数据库开启遇到的keng
- 【千纸诗书】—— PHP/MySQL二手书网站后台开发之项目设计
- LaTeX入门|(2)定制专属模板
热门文章
- 深圳市怎么样 官田学校介绍
- JavaScript--倒计时
- 农村家庭暴力有什么应对的措施
- 诸如i云保网络保险平台的内勤裁员之路在哪里?
- es java 删除索引_使用java中的elasticSearch 2.3.3按索引名称和类型删除索引
- “绿宝书”好在哪?前端大佬们都在推荐
- @MDS SpringBoot的简单项目搭建
- Scrapy 简易爬取Boss直聘 可设定city job 爬取工作到excel或mysql中
- 《C#零基础入门之百识百例》(九十一)预处理器指令 -- 代码示例
- 区块链游戏,只是一场游戏….