python建站——秒建动态网站

黑猫白猫抓到耗子的就是好猫

今天我们不求乎貌美如花,只求实现功能,来说说怎么用django快速建一个动态网站

动态网站并不是指具有动画功能的网站,而是指网站内容可根据不同情况动态变更的网站

之前的文章中我们建立了一个learning_log项目,所以先进入到learning_log项目目录

目录中有一个db.sqlite3文件,这个文件就是django自带的数据库

python建站——秒建动态网站_第1张图片

尤记得计算机三级就是数据库,说来惭愧,现在用到了才想起来学习

那数据库有什么用?

通常的解释,是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合

简单理解就是用合理的方式来存储数据,以方便查询、更新、修改、删除数据,最终与使用者互动,本质是一个存储电子文件的文件柜

使用数据库可以把页面固定的格式与用户使用的数据分离开来,网站结构更清晰,后期维护更方便

使用同一套数据库,就能分别开发APP、web网站、微信小程序,极大地提升效率,降低成本

django可以使用主流数据库比如mysql、PostgreSQL、oracle等,也可以使用的是自带的轻便型sqlite3

通过在settings.py文件配置之后就可以轻松进行切换使用的数据库

打开setting.py设置文件,找到DATABASES(数据库)部分进行查看
python建站——秒建动态网站_第2张图片

default指的是默认数据库,ENGINE指的是使用哪种数据库,NAME指的是数据库的库名,BASE_DIR指的是根目录,os.path.join表明的是连接

os.path.join(BASE_DIR, ‘db.sqlite3’)的意思是把根目录和db.sqlite3文件进行连接

如使用默认数据库则不用重新配置

举个使用mysql数据库的例子感受一下,MySQL 目前是最流行的关系型数据库管理系统

python建站——秒建动态网站_第3张图片

我们可以认为数据库中有表,表中有行,有列,跟电子表格一样

怎么建表?

django通过models.py创建数据库表,当然你也可以使用数据库的sql语言创建表,django提供了简便管理数据库的方法,可以让我们专注于业务

所以我们使用django的方法创建数据表,打开项目目录下面的应用目录,并打开learning_logs/models.py

输入下图代码
python建站——秒建动态网站_第4张图片

class定义的是叫Topic的类,类表示的是数据库中的表

text、date_added、为字段表示的是数据表中的列

__str__表示的是这个模型的方法 使用这个模型时会显式的返回字段text中的内容

保存后,数据库的模型已经搭建好

运行命令: python manage.py makemigrations learning_logs

这个命令让 Django 确定该如何修改数据库

运行命令:python manage.py migrate

这个命令是执行修改数据库的操作,把我们创建的Topic模型(数据表)添加到数据库中
在这里插入图片描述

数据表已经建好,下数据表中添加数据后就可以使用数据库了

我们介绍一种可视化的操作数据库的方法,django自带的后台管理系统

即通过后台管理系统插入数据到数据表

先把数据库的这个Topic模型(表)注册到管理系统中

打开learning_logs/admin.py,admin代表的是后台管理系统,输入两行代码就可以注册成功

from learning_logs.models import Topic

注:从models中把Topic类导入到文件中
python建站——秒建动态网站_第5张图片

admin.site.register(Topic)

注:把Topic类注册到管理系统中

我们再来一步,创建一个管理员用的超级账户

输入命令:

python manage.py createsuperuser

输入用户名(例如):admin

输入密码(举例):adminadmin

确认密码(举例):adminadmin
python建站——秒建动态网站_第6张图片

运行服务器命令:

python manage.py runserver

浏览器中打开后台管理界面:127.0.0.1:8000/admin/

python建站——秒建动态网站_第7张图片
python建站——秒建动态网站_第8张图片

点击“add”给我们的Topic表添加两条数据

python建站——秒建动态网站_第9张图片

python建站——秒建动态网站_第10张图片
数据已经添加成功,数据库中有两行数据,怎么显示在界面中呢?

首先打开learning_logs/views.py

实例化Topic模型,实例表示的是具体的例子,可以理解为模型具体化。

代码为:topic=Topic.objects.all()

把实例化的Topic赋值给变量topic

修改最后一行代码:把topic变量传到HelloIdex页面中
python建站——秒建动态网站_第11张图片

打开learning_logs/templates/learning_logs/HelloIdex.html

添加一行代码,用{{}}语法显示传递过来的topic变量

python建站——秒建动态网站_第12张图片

内容显示在了页面中,queryset叫查询集,表明的是一个集合,里面包含了两个对象(即两条数据)

python建站——秒建动态网站_第13张图片

看起来很不爽,修改一下代码,让两条数据逐行显示

python建站——秒建动态网站_第14张图片

{% %}是python自带的用于快速开发的标签模板

我们使用了{% for %}开始,{% endfor %}结束,把topic中的内容一个一个的遍历出来,并给了top变量,然后用{{top}}语法把top变量显示了出来

python建站——秒建动态网站_第15张图片

大功告成,今天简单了解了一下,什么是数据库,怎么使用数据库,涉及到了不少python的语法,之后有时间给大家介绍一下python的基本语法

你可能感兴趣的:(web开发之django)