摘要:獲取成為開發專家的技巧。我們可以在兩個文本框輸入筆記的標題和內容。在本教程中,我們將使用一個名為的工具。它是一個火狐瀏覽器的擴展,我們可以使用它管理數據庫。安裝,打開火狐瀏覽器,點擊,然后點找到的文件夾圖標并點擊它。
教程譯文首發自我的博客,Defshine"s Blog
如果你還沒有閱讀本教程的第一部分,可以訪問這里:
我翻譯的:如何使用Flask開發一個增刪改查的應用
英文原文:How to build a CRUD application using Flask
在之前的教程里,我們定義了一個Note的數據模型:
class Note(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(80)) body = db.Column(db.Text) def __init__(self, title, body): self.title = title self.body = body
Jaapz告訴我,當創建Note數據模型時,沒有必要使用一個自定義的__init__方法:
https://www.reddit.com/r/flask/comments/4bgisp/how_to_build_a_crud_application_using_flask/d18ygml
所以讓我們移除這個自定義的__init__方法,那你的Note數據模型應該是這樣的:
class Note(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(80)) body = db.Column(db.Text)
現在我們將要創建一個筆記的頁面。
在main.py:
下面這段代碼的上面:
if __name__ == "__main__": app.run(debug=True)
增加以下代碼:
@app.route(“/notes/create”, methods=[“GET”, “POST”])
這個路由將會處理HTTP請求的GET和POST方法。
如果你對HTTP方法不太熟悉,你可以參考這里:http://www.tutorialspoint.com/http/http_methods.htm
接下來,在路由的下面增加一下代碼。
在main.py:
def create_note(): if request.method == "GET": return render_template("create_note.html") else: title = request.form["title"] body = request.form["body"] note = Note(title=title, body=body) db.session.add(note) db.session.commit() return redirect(“/notes/create”)
如果請求的方法是GET方法,上面這個函數就會渲染create_note.html模板。如果請求方法不是GET方法(在我們這個例子里,如果請求的方法不是GET方法,我們就認為這個請求是POST方法。我們斷定請求方法如果不是GET方法就是POST方法,因為我們的路由只允許處理GET和POST方法)
檢查我們在上面增加的路由:
methods=["GET", "POST"]
回到我剛才說的,如果請求方法不是GET方法,我們就通過request.form[]獲取提交的title和body,并且把它們的值保存在title和body兩個變量里。
下面,我們將初始化一個Note模型,并且把title和body這個兩個變量放進去。把Note實例賦給note變量。
獲取成為Python開發專家的技巧。訪問: http://treehouse.7eer.net/c/245500/245646/3944
下面,我們把note變量傳給 db.session.add()。
然后,我們調用db.session.commit()把筆記保存到數據庫中。 隨之,我們重定向到相同的頁面上。
如果你想理解SQLAlchemy的回話(session)是如何工作的,你可以閱讀這篇文章:http://pythoncentral.io/understanding-python-sqlalchemy-session/
在template文件夾中,創建一個文件名為create_note.html,然后復制以下內容:
在這里我們只是增加了一個HTML表單,它包含兩個標簽,兩個文本框以及一個提交按鈕。我們可以在兩個文本框輸入筆記的標題和內容。同時,我們設置表單的方法屬性為POST。如果我們不這里定義一個方法,它就會默認使用GET方法。
如果你對HTML表單不太熟悉,你可以參考這里:http://www.w3schools.com/html/html_forms.asp
現在,你在瀏覽器里訪問http://localhost:5000/notes/create,你應該會看到下圖這樣:
如果你看到了像“頁面未找到”或者“網站無法訪問”這樣的錯誤,可能是因為你的服務器沒有運行。所以,要檢查確保服務器是運行的。如果它沒有運行,在note_app目錄下,通過以下命令運行服務器:
python main.py
當你在創建筆記的頁面上,輸入標題和內容,通過點擊提交按鈕就可以創建一則筆記。你應該會被重定向到相同的頁面上,但是輸入的內容應該會消失。
現在我們來檢查一下筆記是否被保存進了數據庫。
在本教程中,我們將使用一個名為SQLite manager: https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/的工具。
它是一個火狐瀏覽器的擴展,我們可以使用它管理SQLite數據庫。安裝,打開火狐瀏覽器,點擊tools,然后點SQLite manager:
找到SQLite manager的文件夾圖標并點擊它。通過note_app文件夾下的app.sqlite文件打開應用的SQLite數據庫。
現在點擊Tables,點擊note,點擊Browse & Search,你應該會看到我們之前創建的筆記的數據。
在下次的教程中,我們將創建列表頁面,它會展示所有我們添加到數據庫中的筆記數據。或許,也會增加一個編輯筆記的特性。
教程的源代碼放在Github上:https://github.com/basco-johnkevin/note-taking-app/tree/master/part2
原文地址:https://medium.com/python-flask-django-tutorials-and-tips/how-to-build-a-crud-application-using-flask-python-framework-part-2-6859b4730350#.n0j5pwauj
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/45437.html
摘要:教程譯文首發自我的博客我們將創建一個簡單的數據庫驅動的筆記本應用。本教程面向想學習如何使用開發網站或者應用的初學者。在剛創建的文件中,創建一個名為的文件。現在,我們將創建一個函數,并且使用裝飾器將它綁定到一個上。 showImg(https://segmentfault.com/img/remote/1460000006765797); 教程譯文首發自我的博客:Defshines Bl...
摘要:準備數據結構這個以對一個簡單的通訊錄進行插入查詢更新刪除記錄為例,中包含和兩個字段下載還沒出官方的驅動包,是現在比較流行的第三方包,能找到的相關資料也比較多。準備實現對的增刪改查操作,先想了下怎么寫測試案例。查找,通過查找該條記錄。 環境聲明:go version go1.11MongoDB server version 4.0.3 背景 這是我第一次接觸golang和MongoDB,...
摘要:項目地址寫在開頭本文主要分享我如何使用對實現增刪改查操作,感謝社區所有精品文章的幫助,以及的開源項目對我的啟發。我們這個項目是建立一個班級學生管理系統,能夠對學生的姓名及學號進行增刪改查的操作。 項目地址:https://github.com/jrainlau/mongoose_cru... 寫在開頭 本文主要分享我如何使用express+mongoose對mongodb實現增刪改查...
摘要:要達到水平很高的程序員,第一要找能提供優質實踐機會的大廠,第二要在諸如高并發或機器學習的項目里多解決實際問題,第三還要不斷跳槽,不斷地找更優質的平臺和更優質的項目機會。 ...
閱讀 703·2021-11-18 10:02
閱讀 3579·2021-09-02 10:21
閱讀 1725·2021-08-27 16:16
閱讀 2058·2019-08-30 15:56
閱讀 2386·2019-08-29 16:53
閱讀 1373·2019-08-29 11:18
閱讀 2952·2019-08-26 10:33
閱讀 2641·2019-08-23 18:34