码迷,mamicode.com
首页 > 其他好文 > 详细

Django示例演示

时间:2019-09-13 17:38:09      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:name   erro   turn   pip   max   语句   字段   2-2   conf   

引用自:https://blog.csdn.net/weixin_42950386/article/details/83143293

定义模型类


模型类被定义在"应用/models.py"文件中,此例中为"booktest/models.py"文件。
模型类必须继承自Model类,位于包django.db.models中。
提示:对于重要数据使用逻辑删除。

示例演示


接下来首先以"图书-英雄"管理为例进行演示。
注意:这里我们用的版本是django==1.8.2版本。
了解和2.1版本的区别,请百度查询,这里不再啰嗦。

1.打开booktest/models.py文件,定义模型类如下

 1 from django.db import models
 2 # from datetime import date
 3 # Create your models here.
 4 
 5 class BookInfo(models.Model):
 6     """图书模型类"""
 7     # 书名
 8     btitle = models.CharField(max_length=40)
 9     # 出版日期
10     bpub_date = models.DateField(default=1970-01-01)
11     # 阅读量
12     bread = models.IntegerField(default=0)
13     # 点赞量
14     bgood = models.IntegerField(default=0)
15     # 删除
16     is_del = models.BooleanField(default=False)
17 
18 class HeroInfo(models.Model):
19     """英雄模型类"""
20     # 英雄名称
21     hname = models.CharField(max_length=20)
22     # 性别
23     hgender = models.BooleanField(default=False)  # False为男
24     # 年龄
25     hage = models.IntegerField(default=18)
26     # 功夫
27     hcomment = models.CharField(max_length=128)
28     # 关联
29     hbook = models.ForeignKey("BookInfo")
30     # 删除
31     isDelete = models.BooleanField(default=False)

 

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 admin

urlpatterns = [
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 views

urlpatterns=[
url(r’^KaTeX parse error: Expected ‘EOF‘, got ‘\d‘ at position 35: … 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文件。

模板文件

技术图片

 

 

模板代码如下:

创建
{%for book in list%}
{{book.btitle}}--删除
{%endfor%}
7.运行 运行服务器。
python manage.py runserver
在浏览器中查看。

技术图片

 

 

首页

操作效果如下图。

技术图片

 

 

运行

在mysql命令行中查看数据表变化如下图:

数据变化

技术图片

 

Django示例演示

标签:name   erro   turn   pip   max   语句   字段   2-2   conf   

原文地址:https://www.cnblogs.com/yifengs/p/11517076.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!