资讯专栏INFORMATION COLUMN

[译]如何使用Flask开发一个增删改查的应用(part2)

adam1q84 / 860人阅读

摘要:获取成为开发专家的技巧。我们可以在两个文本框输入笔记的标题和内容。在本教程中,我们将使用一个名为的工具。它是一个火狐浏览器的扩展,我们可以使用它管理数据库。安装,打开火狐浏览器,点击,然后点找到的文件夹图标并点击它。

教程译文首发自我的博客,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[]获取提交的titlebody,并且把它们的值保存在titlebody两个变量里。
下面,我们将初始化一个Note模型,并且把titlebody这个两个变量放进去。把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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/45437.html

相关文章

  • []如何使用Flask开发一个删改查的应用

    摘要:教程译文首发自我的博客我们将创建一个简单的数据库驱动的笔记本应用。本教程面向想学习如何使用开发网站或者应用的初学者。在刚创建的文件中,创建一个名为的文件。现在,我们将创建一个函数,并且使用装饰器将它绑定到一个上。 showImg(https://segmentfault.com/img/remote/1460000006765797); 教程译文首发自我的博客:Defshines Bl...

    tianlai 评论0 收藏0
  • 用Go语言借助mgo实现一个对MongoDB进行删改查的demo

    摘要:准备数据结构这个以对一个简单的通讯录进行插入查询更新删除记录为例,中包含和两个字段下载还没出官方的驱动包,是现在比较流行的第三方包,能找到的相关资料也比较多。准备实现对的增删改查操作,先想了下怎么写测试案例。查找,通过查找该条记录。 环境声明:go version go1.11MongoDB server version 4.0.3 背景 这是我第一次接触golang和MongoDB,...

    Jingbin_ 评论0 收藏0
  • 使用express+mongoose对mongodb实现删改查操作

    摘要:项目地址写在开头本文主要分享我如何使用对实现增删改查操作,感谢社区所有精品文章的帮助,以及的开源项目对我的启发。我们这个项目是建立一个班级学生管理系统,能够对学生的姓名及学号进行增删改查的操作。 项目地址:https://github.com/jrainlau/mongoose_cru... 写在开头 本文主要分享我如何使用express+mongoose对mongodb实现增删改查...

    Markxu 评论0 收藏0
  • 你只知道别人很牛,但是你知道那些编程水平很高的程序员是怎么练成的吗?

    摘要:要达到水平很高的程序员,第一要找能提供优质实践机会的大厂,第二要在诸如高并发或机器学习的项目里多解决实际问题,第三还要不断跳槽,不断地找更优质的平台和更优质的项目机会。 ...

    booster 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<