前言 |
- 目标:实现Django通过表单的GET方式和POST方式提交数据,并添加到数据库 。
- OS:win10 x64
- Django:1.11.8
- Python: 3.6
- 本文完整示例:完整示例;
虽然使用的系统和软件没有什么影响,但还是交代一下。
二、实现思路 |
从用户角度考虑
- 访问一个url,返回填写表单页面;
- 在表单页面填写信息,并提交;
- 若提交成功,返回提交成功页面,并提供返回添加页面和图书列表跳转链接;
- 若提交失败,则返回操作失败页面,并提供跳转继续添加链接;
从开发者角度
- 用户请求一个url,传递一个页面给用户;
- 用户填写数据后提交,这时需要判断字段是否合法,合法则允许提交;不合法则提示哪一项不合法,提示用户修改;
- 用户提交成功后,修改数据库;若修改数据库等操作成功,则传递成功页面;否则,返回失败页面;
- 继续等待用户其他url请求。
三、实现步骤 |
接下来,将从开发者的角度实现。
假设有这样一个场景,图书管理员需要向数据库中录入书籍以及作者的信息,书籍只具有“书名“属性,作者具有”姓名” 和 “年龄”属性。
1. 用户访问url,传递一个页面给用户
- 在urls.py文件中添加路由
urlpatterns = [
# 以上还有很多url路由,这里仅列出需要的路由
## 利用表单增加图书,实现前台与数据库交互
url(r'^addbook/$', polls_views.addbook),
]
以上url匹配地址http://127.0.0.1/addbook/
,当用户访问该地址时,返回一个页面给用户。
- 返回给用户页面bookadd.html
在views.py文件中添加方法,返回页面bookadd.html。
## 返回给用户页面bookadd.html
def addbook(request):
return render(request, 'bookadd.html')
在templates目录下新建bookadd.html文件,添加HTML代码。
HTML代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>增加图书</title>
<script src="../js/jquery-2.1.3.min.js"></script>
<style>
* {