Django小项目--待办清单(四)(从表单中获取数据并存入数据库)

首先进入主页(要记得先进入虚拟环境并且通过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请求的话,就直接把现有的表显示到页面即可。

猜你喜欢

转载自blog.csdn.net/huangguangyourena/article/details/81069222