booktest-5 从这里开始使用mysql数据库

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')

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值