1 在PowerCell里面输入命令,登陆mysql
2.输入命令查询数据库
3.创建数据库books,并查询看是否创建成功
4.切换到books数据库,查询所有的表
5.在django项目test1的settings.py里面修改数据库设置,切换到mysql数据库
DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
'ENGINE': 'django.db.backends.mysql',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'NAME': 'books',#使用数据库名称,需要提前手动创建好
'USER':'root',
'PASSWORD':'123456',
'HOST':'localhost',
'PORT':3306,
}
}
6.安装pymysql
7.在django项目test1里面的__init__.py里面加入下面代码
import pymysql
pymysql.install_as_MySQLdb()
8.启动服务器
9.报错如下
10.点击上面的File地址,注释掉下面两行
11.在modes.py里面增加几个类属性
from django.db import models
# Create your models here.
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)
def __str__(self):
return self.btitle
class HeroInfo(models.Model):
hname=models.CharField(max_length=20)
hgender=models.BooleanField(default=False)
hcomment=models.CharField(max_length=128)
hbook=models.ForeignKey('BookInfo',on_delete=models.CASCADE)
# 删除标记
isDelete = models.BooleanField(default=False)
def __str__(self):
return self.hname
11.执行迁移
12.在PowerShell里执行查表命令,就可以看到新建的表
13.查询下表结构
14.修改视图函数index
def index(request):
books = BookInfo.objects.all();
return render(request,'booktest/index.html', {'books': books})
15.修改booktest/index.html.注意模板里面的url地址必须以/开头,表示域名后跟这个,不加的化则表示上一个访问地址跟这个地址拼接
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>图书信息</title>
</head>
<body>
<a href="/create">新增</a>
<ul>
{% for book in books%}
<li>{{book.btitle}}--<a href="/delete{{book.id}}">删除</a></li>
{% endfor %}
</ul>
</body>
</html>
16.增加create和delete视图函数
from django.http import HttpResponseRedirect
def create(request):
b = BookInfo()
b.btitle = '流星蝴蝶剑'
b.bpub_date = date(1990, 1, 1)
b.save()
return HttpResponseRedirect('/index')
def delete(request,bid):
b=BookInfo.objects.get(id=bid)
b.delete()
return HttpResponseRedirect('/index')
17.在app urls.py里面增加路由
url(r'^create$', views.create),
url(r'^delete(\d+)$', views.delete),
18.访问index验证新增和删除功能
19.此时在终端中看到如下,表示执行了重定向到index
20.导入redirect 可以将HttpReponseDirect替换为redirect
from django.shortcuts import render,redirect
def create(request):
b = BookInfo()
b.btitle = '流星蝴蝶剑'
b.bpub_date = date(1990, 1, 1)
b.save()
return redirect('/index')
def delete(request,bid):
b=BookInfo.objects.get(id=bid)
b.delete()
return redirect('/index')