首先进入主页(要记得先进入虚拟环境并且通过python mange.py runserver启动本地服务器),我们知道主页匹配的网址是localhost:8000/todo/home,在浏览器上输入并回车。
在页面的右上角有一个添加待办事项的按钮,输入内容并点击添加之后,内容就会添加到页面的表里面,成为第5个待办事项。
我们知道,点击按钮之后将会提交一个表单。这个表单就是我们的待办事项。
而且需要注意的是,我们在将待办事项添加进数据库后,内容还会返回页面,因此我们在views.py在写相关代码。
在写之前先看表单是怎么样的,我们点开base.html模板页面
action是空,表示提交到当前页面,所以我们在home页面提交,就会提交到home页面,然后就会提交到views.home交给home方法来处理这个提交的内容。
还有一个需要注意的点就是上面的input,它的name是dbsx,在django里面一定要写上这个属性,它是为了后台能够获得该数据的保障。
接着我们看看home.py长啥样,
我们知道,刷新网页是get请求,而提交办单是post请求,因此我们需要写判断语句来区分这两种情况。
我们直接看第二个if语句,request.POST['dbsx'].这里面的参数就是我们提交表单时的那个input的name属性,所以我们可以通过
request.POST['dbsx']来获取提交的数据。
当添加的内容不为空时,我们就要将内容插入数据库。因此我们需要把数据库对应的库导进来
Todo类就是我们的数据库模板,我们可以通过该类的对象来对数据进行插入。
a_row = Todo(thing=request.POST['dbsx'],done=False),我们将待办事项叫做thing,所以我们将获取的数据赋值给它。
赋值完之后一定要进行保存,这样才能真正的修改数据表。
Todo.objects.all()就是显示数据表里面的所有行。
render进行渲染的时候,第三个参数要求是字典,因此我们写一个字典content = {'list':Todo.objects.all()},然后将整个表渲染到home页面,这样我们就实现了将数据库里的表显示到前端页面上。
如果是get请求的话,就直接把现有的表显示到页面即可。