黑猫白猫抓到耗子的就是好猫
今天我们不求乎貌美如花,只求实现功能,来说说怎么用django快速建一个动态网站
动态网站并不是指具有动画功能的网站,而是指网站内容可根据不同情况动态变更的网站
之前的文章中我们建立了一个learning_log项目,所以先进入到learning_log项目目录
目录中有一个db.sqlite3文件,这个文件就是django自带的数据库
尤记得计算机三级就是数据库,说来惭愧,现在用到了才想起来学习
那数据库有什么用?
通常的解释,是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合
简单理解就是用合理的方式来存储数据,以方便查询、更新、修改、删除数据,最终与使用者互动,本质是一个存储电子文件的文件柜
使用数据库可以把页面固定的格式与用户使用的数据分离开来,网站结构更清晰,后期维护更方便
使用同一套数据库,就能分别开发APP、web网站、微信小程序,极大地提升效率,降低成本
django可以使用主流数据库比如mysql、PostgreSQL、oracle等,也可以使用的是自带的轻便型sqlite3
通过在settings.py文件配置之后就可以轻松进行切换使用的数据库
打开setting.py设置文件,找到DATABASES(数据库)部分进行查看
default指的是默认数据库,ENGINE指的是使用哪种数据库,NAME指的是数据库的库名,BASE_DIR指的是根目录,os.path.join表明的是连接
os.path.join(BASE_DIR, ‘db.sqlite3’)的意思是把根目录和db.sqlite3文件进行连接
如使用默认数据库则不用重新配置
举个使用mysql数据库的例子感受一下,MySQL 目前是最流行的关系型数据库管理系统
我们可以认为数据库中有表,表中有行,有列,跟电子表格一样
怎么建表?
django通过models.py创建数据库表,当然你也可以使用数据库的sql语言创建表,django提供了简便管理数据库的方法,可以让我们专注于业务
所以我们使用django的方法创建数据表,打开项目目录下面的应用目录,并打开learning_logs/models.py
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
admin.site.register(Topic)
注:把Topic类注册到管理系统中
我们再来一步,创建一个管理员用的超级账户
输入命令:
python manage.py createsuperuser
输入用户名(例如):admin
输入密码(举例):adminadmin
运行服务器命令:
python manage.py runserver
浏览器中打开后台管理界面:127.0.0.1:8000/admin/
点击“add”给我们的Topic表添加两条数据
首先打开learning_logs/views.py
实例化Topic模型,实例表示的是具体的例子,可以理解为模型具体化。
代码为:topic=Topic.objects.all()
把实例化的Topic赋值给变量topic
修改最后一行代码:把topic变量传到HelloIdex页面中
打开learning_logs/templates/learning_logs/HelloIdex.html
添加一行代码,用{{}}语法显示传递过来的topic变量
内容显示在了页面中,queryset叫查询集,表明的是一个集合,里面包含了两个对象(即两条数据)
看起来很不爽,修改一下代码,让两条数据逐行显示
{% %}是python自带的用于快速开发的标签模板
我们使用了{% for %}开始,{% endfor %}结束,把topic中的内容一个一个的遍历出来,并给了top变量,然后用{{top}}语法把top变量显示了出来
大功告成,今天简单了解了一下,什么是数据库,怎么使用数据库,涉及到了不少python的语法,之后有时间给大家介绍一下python的基本语法