真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

flask學(xué)習(xí)之?dāng)?shù)據(jù)庫操作一

數(shù)據(jù)庫操作使用

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國際域名空間、虛擬空間、營銷軟件、網(wǎng)站建設(shè)、相城網(wǎng)站維護(hù)、網(wǎng)站推廣。

sqlalchemy模塊安裝(需安裝MySQL-python/python-devel)
pip install flask-sqlalchemy

目錄結(jié)構(gòu)

├── app
│   ├── __init__.py
│   └── models.py
├── config.py

配置環(huán)境

vim config.py
#coding:utf-8
SQLALCHEMY_DATABASE_URI = 'mysql://mysqlTest:mysqlTest@192.168.3.85/mysqlTest'
SQLALCHEMY_TRACK_MODIFICATIONS = True    #python版本低報(bào)出警告
#初始化
vim app/__init__.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config.from_object('config')
db = SQLAlchemy(app)
from app import models
#定義表模型(舉例用)
vim app/models.py
from app import db
class User(db.Model):
        id = db.Column(db.Integer,primary_key = True)
        nickname = db.Column(db.String(64),index=True,unique = True)
        email = db.Column(db.String(120),index=True,unique = True)
        def __repr__(self):
                return '' % (self.nickname)

shell模式下使用介紹

#創(chuàng)建數(shù)據(jù)模型/刪除數(shù)據(jù)模型
>>> from app import db
>>> from app.models import User    #導(dǎo)入U(xiǎn)ser模型
>>> db.create_all()            #創(chuàng)建數(shù)據(jù)庫模型
>>> db.drop_all()
>>> db.create_all()
#添加數(shù)據(jù)
#單條數(shù)據(jù)的提交方式
>>> name_admin = User(nickname='admin',email='admin@flask.com') #賦值數(shù)據(jù)   
>>> db.session.add(name_admin)    #添加數(shù)據(jù)
>>> db.session.commit()    #提交數(shù)據(jù)
#多條數(shù)據(jù)的提交方式
>>> name_user1 = User(nickname='user1',email='user1@flask.com')
>>> name_user2 = User(nickname='user2',email='user2@flask.com')
>>> db.session.add_all([name_user1,name_user2])    #提交的是一個(gè)列表
>>> db.session.commit()
mysql> select * from user;
+----+----------+-----------------+
| id | nickname | email           |
+----+----------+-----------------+
|  1 | admin    | admin@flask.com |
|  2 | user1    | user1@flask.com |
|  3 | user2    | user2@flask.com |
+----+----------+-----------------+

查詢數(shù)據(jù)

#查詢所有數(shù)據(jù)
all=User.query.all()
#過濾查詢(filter_by()),查詢nickname=user1的行
>>> user1 = User.query.filter_by(id=2).first() 
>>> user2 = User.query.filter_by(id=3).first()
>>> user1

>>> user2

#查詢?cè)撔袛?shù)據(jù)的各個(gè)字段,查看nickname字段的值
>>> user1.nickname
u'user1'
>>> user2.nickname
u'user2'
#結(jié)果顯示限制(limit()),顯示兩條查詢結(jié)果
>>> result = User.query.limit(2).all()
>>> result
[]

修改數(shù)據(jù)

#修改數(shù)據(jù),修改對(duì)應(yīng)字段的值后直接提交即可
#修改use1的nickname字段的值為user001
user1.nickname = 'user001'
db.session.add(user1)
db.session.commit()
刪除數(shù)據(jù)
db.session.delete(user1)
db.session.commit()

#常見查詢過濾器
filter() 把過濾器添加到原查詢上,返回一個(gè)新查詢
filter_by() 把等值過濾器添加到原查詢上,返回一個(gè)新查詢
limit() 使用指定的值限制原查詢返回的結(jié)果數(shù)量,返回一個(gè)新查詢
offset() 偏移原查詢返回的結(jié)果,返回一個(gè)新查詢
order_by() 根據(jù)指定條件對(duì)原查詢結(jié)果進(jìn)行排序,返回一個(gè)新查詢
group_by() 根據(jù)指定條件對(duì)原查詢結(jié)果進(jìn)行分組,返回一個(gè)新查詢
#常見查詢執(zhí)行函數(shù)
all() 以列表形式返回查詢的所有結(jié)果
first() 返回查詢的第一個(gè)結(jié)果,如果沒有結(jié)果,則返回 None
first_or_404() 返回查詢的第一個(gè)結(jié)果,如果沒有結(jié)果,則終止請(qǐng)求,返回 404 錯(cuò)誤響應(yīng)
get() 返回指定主鍵對(duì)應(yīng)的行,如果沒有對(duì)應(yīng)的行,則返回 None
get_or_404() 返回指定主鍵對(duì)應(yīng)的行,如果沒找到指定的主鍵,則終止請(qǐng)求,返回 404 錯(cuò)誤響應(yīng)
count() 返回查詢結(jié)果的數(shù)量
paginate() 返回一個(gè) Paginate 對(duì)象,它包含指定范圍內(nèi)的結(jié)果

分享名稱:flask學(xué)習(xí)之?dāng)?shù)據(jù)庫操作一
文章路徑:http://weahome.cn/article/jsseop.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部