Django学习笔记-models.py操作数据库

1、在settings.py的 INSTALLED_APPS 添加项目名称
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    'novel',#本项目名称为novel
]

这里写图片描述

2、在settings.py 的 DATABASES 中设置数据库信息
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',#使用的是mysql数据库
        'NAME':'test',#数据库名称
        'USER':'root',#用户名
        'PASSWORD':'',
        'HOST':'localhost',
        'PORT':'3306 '
    }
}
3、把数据库的信息导入models.py
1)在主项目目录中打开控制台

按住shitf,右键:
这里写图片描述
执行与数据库同步命令:(初始化数据库,生成数据文件)
这里写图片描述
这里写图片描述
执行导入数据库命令:
这里写图片描述

打开models.py可以看到已经将test数据库中的表导入其中了,每一个类对应一个表
这里写图片描述
这里写图片描述

4、通过在veiws.py中导入数据库中的表来操作数据库

这里写图片描述

5、数据库操作:

1、objects.create()
增加数据

 dic={'usrname':'XX','age':'11'}
 Tb1.objects.create(**dic)

2、objects.all().values_list()
查询数据

a=Tb1.objects.all().values_list('usrname','age')#查询usrname&age列数据
print(a)

输出:
<QuerySet [('Tom', 25), ('DXT', 25), ('LL', 65), ('MAOMAO', 11), ('mm', 11), ('XX', 11)]>
数据表:
这里写图片描述

3、objects.get()
获取一个数据:

c = Novelcontent1.objects.get(id=1)
print(c.id)

获取id=1的数据

4、Novelcontent1.objects.filter().order_by(‘?’)[:5]
从数据库中随意取5个数据

order_by()为根据某一字段排序
如:
objects.all().order_by('name')是根据‘name’字段排序

6、把数据库中的数据导入HTML:

在views.py中通过字典传递给index.html
这里写图片描述

7、在HTML文件中使用数据库的数据:

先看一下novels数据库中Novelcontent1表中字段:
这里写图片描述

在HTML文件中可以通过使用 novels.novelhref、novels.imgsrc、novels.title、novels.id等来引用数据库中的数据:
原HTML局部代码:(静态显示5本小说概要,不引用数据库)

    <div class="mind_book">
        <a class="cover" href="http://book.zongheng.com/book/693409.html" title="近身医王" target="_blank" data-ack="103_3|103">
            <img alt="近身医王" data-src="http://static.zongheng.com/upload/cover/4c/e3/4ce37d866a309a90dd73a3f03ea79e41.jpeg" src="{% static '/pixel.gif'%}">
        </a>
        <h3 class="bookname">
            <a class="fblue" href="http://book.zongheng.com/book/693409.html" title="近身医王" target="_blank" data-ack="103_4|103">近身医王</a>
        </h3>
        <p class="info">
            <a href="http://book.zongheng.com/book/693409.html" title="林枫醒来的瞬间发现一个自称华佗的白胡子老头,被传授无双医道……" target="_blank" data-ack="103_5|103">林枫醒来的瞬间发现一个自称华佗的白胡子老头,被传授无双医道……</a>
        </p>
    </div>

    <div class="mind_book">
        <a class="cover" href="http://book.zongheng.com/book/719827.html" title="神级奶爸" target="_blank" data-ack="103_6|103"><img alt="神级奶爸" data-src="http://static.zongheng.com/upload/cover/de/3c/de3ccb25c9283d485dd0485e763752eb.jpeg" src="{% static '/pixel.gif'%}"></a>
        <h3 class="bookname"><a class="fblue" href="http://book.zongheng.com/book/719827.html" title="神级奶爸" target="_blank" data-ack="103_7|103">神级奶爸</a></h3>
        <p class="info"><a href="http://book.zongheng.com/book/719827.html" title="修仙归来成奶爸,建山头,开餐厅,写写歌,泡泡孩她妈……且看修仙奶爸如何玩转都市。" target="_blank" data-ack="103_8|103">修仙归来成奶爸,建山头,开餐厅,写写歌,泡泡孩她妈……且看修仙奶爸如何玩转都市。</a></p>
    </div>

    <div class="mind_book">
        <a class="cover" href="http://book.zongheng.com/book/716054.html" title="第一仙" target="_blank" data-ack="103_9|103"><img alt="第一仙" data-src="http://static.zongheng.com/upload/cover/c7/d9/c7d9e904b70e9890df2822a2bad01c2b.jpeg" src="{% static '/pixel.gif'%}"></a>
        <h3 class="bookname"><a class="fblue" href="http://book.zongheng.com/book/716054.html" title="第一仙" target="_blank" data-ack="103_10|103">第一仙</a></h3>
        <p class="info"><a href="http://book.zongheng.com/book/716054.html" title="一个杂役弟子罢了,却如此狂傲。大能算什么?巨头算什么?你们的开宗祖师爷都得喊我一声师傅。" target="_blank" data-ack="103_11|103">一个杂役弟子罢了,却如此狂傲。大能算什么?巨头算什么?你们的开宗祖师爷都得喊我一声…</a></p>
    </div>

    <div class="mind_book">
        <a class="cover" href="http://book.zongheng.com/book/703728.html" title="剑符天下" target="_blank" data-ack="103_12|103"><img alt="剑符天下" data-src="http://static.zongheng.com/upload/cover/fe/6d/fe6dd9c6784966c95aca0c62c5c683bb.jpeg" src="{% static '/pixel.gif'%}"></a>
        <h3 class="bookname"><a class="fblue" href="http://book.zongheng.com/book/703728.html" title="剑符天下" target="_blank" data-ack="103_13|103">剑符天下</a></h3>
        <p class="info"><a href="http://book.zongheng.com/book/703728.html" title="习得符法传承,演化水火雷纹,林峰借助符文神力,登临至尊宝座。" target="_blank" data-ack="103_14|103">习得符法传承,演化水火雷纹,林峰借助符文神力,登临至尊宝座。</a></p>
    </div>

    <div class="mind_book">
        <a class="cover" href="http://book.zongheng.com/book/714358.html" title="烈阳神尊" target="_blank" data-ack="103_15|103"><img alt="烈阳神尊" data-src="http://static.zongheng.com/upload/cover/69/43/6943c7d418d63e74aee96b175dcd0151.jpeg" src="{% static '/pixel.gif'%}"></a>
        <h3 class="bookname"><a class="fblue" href="http://book.zongheng.com/book/714358.html" title="烈阳神尊" target="_blank" data-ack="103_16|103">烈阳神尊</a></h3>
        <p class="info"><a href="http://book.zongheng.com/book/714358.html" title="在这片无垠大陆上,包罗万象,古烈是一个孤儿,被现在的养父从河里游荡的小篮子里救起来后便一飞冲天" target="_blank" data-ack="103_17|103">在这片无垠大陆上,包罗万象,古烈是一个孤儿,被现在的养父从河里游荡的小篮子里救起来…</a></p>
    </div>

我们可以通过for循环来依次调用数据库数据,引入数据库后的代码:

   {% for novel in novels %}

        <div class="mind_book">
        <a class="cover" href="{{ novel.novelhref }}" title="{{ novel.title }}" target="_blank" data-ack="{{ novel.data_ack0 }}">
            <img alt="{{ novel.title }}" data-src="{{ novel.imgsrc }}" src="{% static '/pixel.gif'%}">
        </a>
        <h3 class="bookname">
            <a class="fblue" href="{{ novel.novelhref }}" title="{{ novel.title }}" target="_blank" data-ack="{{ novel.data_ack1 }}">{{ novel.title }}</a>
        </h3>
        <p class="info">
            <a href="{{ novel.novelhref }}" title="{{ novel.title_recommend }}" target="_blank" data-ack="{{ novel.data_ack2 }}">{{ novel.title_recommend }}</a>
        </p>
    </div>

    {% endfor %}

我们把HTML中的静态数据替换为数据库中调用的变量如把:

<a class="cover" href="http://book.zongheng.com/book/693409.html" title="近身医王" target="_blank" data-ack="103_3|103">
改为:
<a class="cover" href="{{ novel.novelhref }}" title="{{ novel.title }}" target="_blank" data-ack="{{ novel.data_ack0 }}">

这样的话每次都可以从数据库中随机调出5本小说的概要了:
网页截图如下:
这里写图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值