數(shù)據(jù)庫部分:
我們選擇MySQL數(shù)據(jù)庫作為我們所使用的數(shù)據(jù)庫。
下載好數(shù)據(jù)庫后洽瞬,我們新建一個工程恋日,在工程目錄下新建一個config.py的數(shù)據(jù)庫配置文件怎虫。
config.py的內(nèi)容如下:
#第一行是數(shù)據(jù)庫文件的模板,要寫成這種形式
#dialect+driver://username:password@host:port/database
DIALECT = 'mysql'
DRIVER = 'mysqldb'
USERNAME = 'root'
PASSWORD = '123456'
HOST = '127.0.0.1'
PORT = '3306'
DATABASE = 'demo'
SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT,DRIVER,USERNAME,PASSWORD,HOST,PORT,DATABASE)
SQLALCHEMY_TRACK_MODIFICATIONS = False
配置文件寫好后,在app.py文件中引入配置文件import config
,
from flask_sqlalchemy import SQLAlchemy
import config
app = Flask(__name__)
app.config.from_object(config)
db = SQLAlchemy(app)
db.create_all()
如果這串代碼運行無誤,則代表數(shù)據(jù)庫配置文件導(dǎo)入無誤顷窒。執(zhí)行這一步的前提是需要在數(shù)據(jù)庫中創(chuàng)建一個廚師數(shù)據(jù)庫create database databasename
然后我們再在代碼中為數(shù)據(jù)庫創(chuàng)建一張表:假設(shè)我們要創(chuàng)建一張存儲文章的表,表中應(yīng)當包括文章id(唯一且自增)源哩、文章題目(可變字符長度且不可為空)鞋吉、文章內(nèi)容(text文本類型且不為而空)
在MySQL中如何創(chuàng)建一張表
create table articles{
id : int, primarykey,autoincrement; #id是一個Int類型,主鍵励烦,遞增
title:varchar,not null; #title是一個可變字符串類型谓着,非空
content:text,not null #content是一個text類型,非空
}
在Flask中創(chuàng)建一張article表
class Article(db.Model):
__tablename__ = 'article'
id = db.Column(db.Integer,primary_key=True,autoincrement=True)
title = db.Column(db.String(100),nullable=False)
content = db.Column(db.Text,nullable=False)
這樣我們就在數(shù)據(jù)庫中創(chuàng)建了一張表坛掠,用來存儲文章的id,標題赊锚,內(nèi)容.
數(shù)據(jù)的增刪改查:
增添數(shù)據(jù)步驟:
1.增添數(shù)據(jù)
2.執(zhí)行增添語句
3.提交事務(wù)
增添數(shù)據(jù)代碼:
article1 = Article(title='four',content='this is four')
db.session.add(article1)
db.session.commit()
查找數(shù)據(jù)步驟:
1.按照sql語句的方式查找數(shù)據(jù)
代碼:
result = Article.query.filter(Article.id == '2').all()
article=result[0]#查找的結(jié)果是以列表的方式存儲的,因此是result[0]
print("id為%d的數(shù)據(jù)標題為:%s"%(article.id,article.title))
print("id為%d的數(shù)據(jù)的內(nèi)容為:%s"%(article.id,article.content))
更改數(shù)據(jù)步驟:
1.先查找出需要更改的數(shù)據(jù)
2.更改數(shù)據(jù)
3.提交數(shù)據(jù)
代碼:
result = Article.query.filter(Article.id == '2').all()
result[0].title = 'update'
db.session.commit()
刪除數(shù)據(jù)步驟:
1.先查找出需要刪除的數(shù)據(jù)
2.刪除數(shù)據(jù)
3.提交事務(wù)
代碼:
result = Article.query.filter(Article.id == '1').first()
db.session.delete(result)
db.session.commit()
數(shù)據(jù)庫的基本的增刪改查的功能都在上面了却音。
我的app.py的網(wǎng)站代碼:
from flask import Flask,render_template
from flask_sqlalchemy import SQLAlchemy
import config
app = Flask(__name__)
app.config.from_object(config)
db = SQLAlchemy(app)
#在MySQL中如何創(chuàng)建一張表
# create table articles{
# id : int, primarykey,autoincrement; #id是一個Int類型改抡,主鍵矢炼,遞增
# title:varchar,not null; #title是一個可變字符串類型系瓢,非空
# content:text,not null #content是一個text類型,非空
# }
class Article(db.Model):
__tablename__ = 'article'
id = db.Column(db.Integer,primary_key=True,autoincrement=True)
title = db.Column(db.String(100),nullable=False)
content = db.Column(db.Text,nullable=False)
db.create_all()
@app.route('/')
def hello_world():
#數(shù)據(jù)庫的增刪改查
##增加數(shù)據(jù)
# article1 = Article(title='four',content='this is four')
# db.session.add(article1)
#提交事務(wù)
# db.session.commit()
#查找數(shù)據(jù)
#query查找的結(jié)果是以數(shù)組的方式存儲的
# result = Article.query.filter(Article.id == '2').all()
# article=result[0]
# print("id為%d的數(shù)據(jù)標題為:%s"%(article.id,article.title))
# print("id為%d的數(shù)據(jù)的內(nèi)容為:%s"%(article.id,article.content))
#更改數(shù)據(jù)
#1.先查找出需要更改的數(shù)據(jù)
#2.更改數(shù)據(jù)
#3.提交數(shù)據(jù)
# result = Article.query.filter(Article.id == '2').all()
# result[0].title = 'update'
# db.session.commit()
#刪除數(shù)據(jù)
#1.先查找出需要刪除的數(shù)據(jù)
#2.刪除數(shù)據(jù)
#3.提交事務(wù)
result = Article.query.filter(Article.id == '1').first()
db.session.delete(result)
db.session.commit()
return 'hello world'
if __name__ == '__main__':
app.run(debug=True)
整個代碼上傳至我的github