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本小说的概要了:
网页截图如下: