前言 |
雖然使用的系統和軟件沒有什麼影響,但仍是交代一下。html
2、實現思路 |
3、實現步驟 |
接下來,將從開發者的角度實現。
假設有這樣一個場景,圖書管理員須要向數據庫中錄入書籍以及做者的信息,書籍只具備「書名「屬性,做者具備"姓名" 和 "年齡"屬性。python
urlpatterns = [ # 以上還有不少url路由,這裏僅列出須要的路由 ## 利用表單增長圖書,實現前臺與數據庫交互 url(r'^addbook/$', polls_views.addbook), ]
以上url匹配地址http://127.0.0.1/addbook/
,當用戶訪問該地址時,返回一個頁面給用戶。jquery
在views.py文件中添加方法,返回頁面bookadd.html。git
## 返回給用戶頁面bookadd.html def addbook(request): return render(request, 'bookadd.html')
在templates目錄下新建bookadd.html文件,添加HTML代碼。github
HTML代碼:數據庫
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>增長圖書</title> <script src="../js/jquery-2.1.3.min.js"></script> <style> * { margin: 0; padding: 0; </style> </head> <body> <h2>增長圖書</h2> <h3>GET方式</h3> <form action="/addbooktodatabase/" method="get" name="addbook"> <p><span>書名:</span><input type="text" placeholder="書名" name="book_name"></p> <p><span>做者:</span><input type="text" placeholder="做者" name="author"></p> <p><span>做者年齡:</span><input type="text" placeholder="做者年齡" name="author_age"></p> <input type="reset"> <input type="submit" value="增長"> </form> <h3>POST方式</h3> <form action="/addbooktodatabase/" method="post" name="addbook"> {% csrf_token %} <p><span>書名:</span><input type="text" placeholder="書名" name="book_name"></p> <p><span>做者:</span><input type="text" placeholder="做者" name="author"></p> <p><span>做者年齡:</span><input type="text" placeholder="做者年齡" name="author_age"></p> <input type="reset"> <input type="submit" value="增長"> </form> </body> </html>
顯示效果以下:
django
使用JavaScript或JQuery實現判斷,這個實現方法不少,再也不贅述。安全
在urls.py文件中添加url路由post
urlpatterns = [ # 以上還有不少url路由,這裏僅列出須要的路由 ## 處理表單提交的數據,實現前臺與數據庫交互 url(r'^addbooktodatabase/', polls_views.addbooktodatabase), ]
在views.py中增長更新數據庫方法url
# 向圖書館增長數據GET或POST方法方法 def addbooktodatabase(request): # 獲取參數book_name,author,author_age if request.method == "GET": book_name = request.GET["book_name"] author_name = request.GET["author"] author_age = request.GET["author_age"] else: book_name = request.POST["book_name"] author_name = request.POST["author"] author_age = request.POST["author_age"] ## 先增長做者信息 from polls.models import Person person = Person() person.name = author_name person.age = author_age person.save() ## 增長圖書信息 from polls.models import Book bookadded = Book(name=book_name) # 保存修改 bookadded.person_id = person.id bookadded.save() # 重定向到添加成功頁面 from django.http import HttpResponseRedirect return HttpResponseRedirect('/addok/')
在urls.py文件中添加url路由
urlpatterns = [ # 以上還有不少url路由,這裏僅列出須要的路由 # 添加成功後返回添加成功頁面addok url(r'^addok/', polls_views.addok), ]
在templates目錄下新建addok.html文件,添加HTML代碼。
HTML代碼:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>添加成功</title> <style> * { margin: 0; padding: 0; } a{ text-decoration:none; } </style> </head> <body> <div> <p>添加圖書成功</p> <p><a href="/addbook/">繼續添加</a></p> <p><a href="/booklist/">查看圖書列表</a></p> </div> </body> </html>
顯示效果以下:
bookList.html在另外一篇博文中已實現,請參考:利用Django中的url方法實現地址動態拼接自動生成超連接地址
顯示效果以下:
能夠看到,圖書「水滸傳已經添加成功」。
4、總結 |
注意: