中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

flask學習之數據庫操作一

發布時間:2020-06-26 08:19:25 來源:網絡 閱讀:491 作者:j99d99 欄目:數據庫

數據庫操作使用

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


目錄結構

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


配置環境

vim config.py
#coding:utf-8
SQLALCHEMY_DATABASE_URI = 'mysql://mysqlTest:mysqlTest@192.168.3.85/mysqlTest'
SQLALCHEMY_TRACK_MODIFICATIONS = True    #python版本低報出警告
#初始化
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 '<User %r>' % (self.nickname)


shell模式下使用介紹

#創建數據模型/刪除數據模型
>>> from app import db
>>> from app.models import User    #導入User模型
>>> db.create_all()            #創建數據庫模型
>>> db.drop_all()
>>> db.create_all()
#添加數據
#單條數據的提交方式
>>> name_admin = User(nickname='admin',email='admin@flask.com') #賦值數據   
>>> db.session.add(name_admin)    #添加數據
>>> db.session.commit()    #提交數據
#多條數據的提交方式
>>> 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])    #提交的是一個列表
>>> 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 |
+----+----------+-----------------+


查詢數據

#查詢所有數據
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
<User u'user1'>
>>> user2
<User u'user2'>
#查詢該行數據的各個字段,查看nickname字段的值
>>> user1.nickname
u'user1'
>>> user2.nickname
u'user2'
#結果顯示限制(limit()),顯示兩條查詢結果
>>> result = User.query.limit(2).all()
>>> result
[<User u'admin'>, <User u'user001'>]

修改數據

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


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


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临泉县| 尼勒克县| 侯马市| 县级市| 重庆市| 余江县| 谢通门县| 游戏| 偃师市| 西城区| 增城市| 本溪市| 萨嘎县| 定州市| 永嘉县| 红原县| 时尚| 莱阳市| 巫山县| 安塞县| 高清| 昌吉市| 湟源县| 容城县| 澄江县| 望城县| 垦利县| 淮南市| 杭锦后旗| 栾城县| 嘉峪关市| 织金县| 涞水县| 新丰县| 伊通| 修水县| 汉中市| 望江县| 澄江县| 寿阳县| 肇源县|