资讯专栏INFORMATION COLUMN

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

tianlai / 1249人阅读

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

教程译文首发自我的博客:Defshine"s Blog

我们将创建一个简单的数据库驱动的笔记本应用。本教程面向想学习如何使用Flask开发网站或者web应用的初学者。
在学习本教程之前,请先安装好Python和SQLite。如果你还没有在电脑上安装,请先安装。如果你安装的Python版本为2.5或者更高,那么你就无需安装SQLite了,Python 2.5之后的版本都已经内置了SQLite。
Python: https://www.python.org/
SQLite: https://www.sqlite.org/download.html

本教程主要包含的内容:

使用模板

保存一条记录到数据库中

从数据库中获取一条记录

更新数据库中的一条记录

删除数据库中的一条记录

应用的功能:

用户可以创建一篇笔记(一篇笔记包含题目和内容)

用户可以浏览笔记列表

用户可以编辑一篇笔记

用户可以删除一篇笔记

OK,我们开始开发。
首先,我们需要安装Flask和Flask-SQLAlchemy。
打开一个控制台窗口(Windows中的命令行工具),然后逐一运行以下命令:

pip install Flask
pip install Flask-SQLAlchemy

现在,创建一个文件夹,用于存放应用的源代码,我们将这个文件夹命名为note_app
在刚创建的文件中,创建一个名为main.py的文件。

在本教程中,我们将使用模板,所以,我们继续创建一个文件夹,用于存放模板。使用templates作为它的名字,它应该位于note_app文件夹下面。当我们使用模板时,Flask会自动找到templates文件夹下面的模板,这也是我们将这个文件夹命名为templates的原因。

参考: http://flask.pocoo.org/docs/0.10/quickstart/#rendering-templates

下面,我们开始写代码,在main.py文件中

from flask import Flask, render_template, redirect, request
from flask_sqlalchemy import SQLAlchemy
import os

然后,我们创建实际的应用,同时创建SQLAlchemy对象,并把它传递给应用。

app = Flask(__name__)
basedir = os.path.abspath(os.path.dirname(__file__))
app.config["SQLALCHEMY_DATAB+4ASE_URI"] = "sqlite:///" + os.path.join(basedir, "app.sqlite")
db = SQLAlchemy(app)

获取成为Python开发专家的技巧。访问: http://treehouse.7eer.net/c/245500/245646/3944

下面,我们将创建一个模型:

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

上面的这个Note模型将用于对数据库中的笔记进行创建,获取,更新和删除的操作。我们的Note模型有一个Integer类型的id属性,它作为主键。title字段是String类型,它最多可以包含80个字符(你可以把字符串的最大值改成你想要的,这里我们只是把它设置为80),最后是一个Text类型的body属性。
Integer,String,Text都是数据类型,你可以在SQLAlchemy的官方文档查看到一系列的你可以使用的数据类型:http://docs.sqlalchemy.org/en/latest/core/type_basics.html#generic-types

去你的终端窗口,逐一输入以下命令:

python
from main import db
db.create_all()

上面的命令会初始化数据库,它将创建数据库和一个名为note的表。
现在,我们将创建一个函数,并且使用route()装饰器将它绑定到一个URL上。

@app.route("/")
def home():
    return render_template("home.html")

大致说来,当用用户访问我们网站的主页(例如:http://mywebsite.com)时,flask就会调用我们在上面定义的home()函数。在home()函数里,我们渲染了一个名为home.html的模板。

参考: http://flask.pocoo.org/docs/0.10/quickstart/#routing

现在,打开home.html,然后复制下面的内容:

Note Taking App

View all notes
Create a note

回到main.py文件中,然后复制下面的代码到文件底部:

if __name__ == "__main__":
    app.run(debug=True)

你的main.py文件的内容应该类似下面这样:

from flask import Flask, render_template, redirect, request
from flask_sqlalchemy import SQLAlchemy
import os

app = Flask(__name__)
basedir = os.path.abspath(os.path.dirname(__file__))
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///" + os.path.join(basedir, "app.sqlite")
db = SQLAlchemy(app)

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

@app.route("/")
def home():
    return render_template("home.html")

if __name__ == "__main__":
    app.run(debug=True)

现在,让我们通过命令在终端窗口中(确保在note_app目录下运行下面的命令)运行这个应用:

python main.py

现在,在浏览器里访问http://127.0.0.1:5000/。
你应该会看到这个主页:

我们现在这个应用的功能还不完善,在第二部分,我们将开发笔记页面的创建,笔记列表等功能。

教程的源代码放在Github上:https://github.com/basco-johnkevin/note-taking-app/tree/master/part1

原文地址:How to build a CRUD application using Flask (Python Framework)

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

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

相关文章

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

    摘要:获取成为开发专家的技巧。我们可以在两个文本框输入笔记的标题和内容。在本教程中,我们将使用一个名为的工具。它是一个火狐浏览器的扩展,我们可以使用它管理数据库。安装,打开火狐浏览器,点击,然后点找到的文件夹图标并点击它。 showImg(https://cdn-images-1.medium.com/max/600/1*Ou6FFJJD3zhcIUU8wBZqIw.png); 教程译文首发...

    adam1q84 评论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
  • django项目开发部署完整案例【最终效果展示】【源码】【simpleui】【删改查】

    摘要:最近有个项目需要一个简单的页面,为了实现对项目基础信息增删改查的功能,于是就用写了一个,开发工具是。历经大坑小坑,最终成功上线,这里记录下整个过程,并分享出源码,放在文章最后。源码源码下载地址提取码参考下部署项目详细操作步骤部署 ...

    dcr309duan 评论0 收藏0

发表评论

0条评论

tianlai

|高级讲师

TA的文章

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