[譯]如何使用Flask開發一個增刪改查的應用

flask

教程譯文首發自個人博客:Defshine's Blog html

咱們將建立一個簡單的數據庫驅動的筆記本應用。本教程面向想學習如何使用Flask開發網站或者web應用的初學者。
在學習本教程以前,請先安裝好Python和SQLite。若是你尚未在電腦上安裝,請先安裝。若是你安裝的Python版本爲2.5或者更高,那麼你就無需安裝SQLite了,Python 2.5以後的版本都已經內置了SQLite。
Python: https://www.python.org/
SQLite: https://www.sqlite.org/download.htmlpython

本教程主要包含的內容:

  • 使用模板git

  • 保存一條記錄到數據庫中github

  • 從數據庫中獲取一條記錄web

  • 更新數據庫中的一條記錄sql

  • 刪除數據庫中的一條記錄數據庫

應用的功能:

  • 用戶能夠建立一篇筆記(一篇筆記包含題目和內容)django

  • 用戶能夠瀏覽筆記列表flask

  • 用戶能夠編輯一篇筆記瀏覽器

  • 用戶能夠刪除一篇筆記

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,而後複製下面的內容:

<h3>Note Taking App</h3>
<a href="/notes">View all notes</a>
<br>
<a href="/notes/create">Create a note</a>

回到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/
你應該會看到這個主頁:
img

咱們如今這個應用的功能還不完善,在第二部分,咱們將開發筆記頁面的建立,筆記列表等功能。

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

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

相關文章
相關標籤/搜索