flask_sqlalchemy が Python でデータベースを操作する方法の例
この記事では、Python で flask_sqlalchemy がデータベースを操作する例を紹介します。一定の参考値があります。必要な友人は参照できます。お役に立てれば幸いです。
flask_sqlalchemy
オブジェクト リレーショナル マッパー (ORM) フレームワークを使用します。これは、低レベルのデータベース操作命令を高レベルのオブジェクト指向操作に抽象化します。つまり、データベース エンジンを直接使用すると、SQL 操作ステートメントを記述する必要がありますが、ORM フレームワークを使用すると、テーブルやドキュメントなどのデータベース エンティティの操作を Python オブジェクト操作に簡素化できます
SQLAlchemy は、Python の世界における ORM の標準となっています。Flask は、ORM で自由に使用できる軽量の Web フレームワークです。Flask-sqlalchemy は、Flask 用に特別に設計されたプラグインです。
Flask-SQLAlchemy では、データベースは URL を使用して指定されます。
MySQL --> mysql://username:password@hostname/database
インストール
pip install flask-sqlalchemy
データベース操作
##1. データベース操作接続の作成方法
from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) db = SQLAlchemy(app) app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:sheen@localhost/zaj_sql' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True) email = db.Column(db.String(120), unique=True)
db.create_all()
admin = User('admin', 'admin@example.com') guest = User('guest', 'guest@example.com')
db.session.add(admin) db.session.add(guest) db.session.commit()
2. リレーションシップを作成しますタイプ データベース テーブル
SQLAlchemy はリレーショナル データベースに接続されています。リレーショナル データの最も優れた点は関係です。したがって、例として 2 つの関連テーブルを使用するアプリケーションを作成します。最も一般的な関係は 1 対多の関係です。リレーションシップは作成前に宣言されるため、文字列を使用してまだ作成されていないクラスを参照できます。
リレーションシップは relationship() 関数を使用して表現されます。ただし、外部キーはクラス sqlalchemy.schema.ForeignKey を使用して個別に宣言する必要があります。
from datetime import datetime from flask_bootstrap import Bootstrap from flask_wtf import FlaskForm from flask_sqlalchemy import SQLAlchemy from flask import Flask import pymysql from sqlalchemy import desc app = Flask(__name__) db = SQLAlchemy(app) app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:sheen@localhost/zaj_sql' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True bootstrap = Bootstrap(app) class User(db.Model): id = db.Column(db.Integer,autoincrement=True,primary_key=True) name = db.Column(db.String(50),unique=True) passwd = db.Column(db.String(100)) add_time = db.Column(db.DATETIME,default=datetime.now()) gender = db.Column(db.BOOLEAN,default=True) role_id = db.Column(db.INTEGER,db.ForeignKey('role.id')) def __repr__(self): return '<user:>' %(self.name) class Role(db.Model): id = db.Column(db.INTEGER,autoincrement=True,primary_key=True) name = db.Column(db.String(50),unique=True) users = db.relationship('User',backref='role') # 给Role模型添加users属性 # backref 是定义反向引用 def __repr__(self): return '<role:>' % (self.name) if __name__ =='__main__': # 1. 创建数据库表 # db.drop_all() # db.create_all() # # 2. 创建role数据库表数据 role_1 = Role(name='超级会员') role_2 = Role(name='普通会员') db.session.add(role_1) db.session.add(role_2) db.session.commit() # # # 3. 添加user表内数据,100个用户,50个为超级会员,50个为普通会员 for i in range(1,13): if i%2 == 0: u = User(name='sheen'+str(i),passwd='sheen',role_id=1) db.session.add(u) else: u = User(name='star'+str(i),passwd='star',role_id=2) db.session.add(u) db.session.commit()</role:></user:>
#すべてのデータをクエリする
print('角色',Role.query.all()) print('用户',User.query.all())
条件に基づいてデータをクエリする
## select * from tablename where xxx=xxxxx print(User.query.filter_by(role_id=1).all()) print(Role.query.filter_by().all()) print(User.query.filter_by(role_id=2).all())
見つかったデータを更新します
print('进行数据更新',end='\n') u =User.query.filter_by(name='sheen2').first() print(u) u.passwd = '123' db.session.add(u) db.session.commit()
データをフィルター処理するメソッド 2 (フィルター)、このメソッドはネイティブ SQL ステートメントを確認できます
print('数据筛选', end='\n') user = User.query.filter(User.role_id==1) print(user)
クエリされた情報の表示を制限する
print('限制查询数据的显示', end='\n') users = User.query.filter_by(role_id=1).limit(3).all() print(users)
クエリされた情報を並べ替えて出力します (デフォルトでは、小さい順に並べ替えます)。大から小さい順に並べ替えたい場合は、 desc(User. add_time)
print('数据再处理', end='\n') users = User.query.filter_by(role_id=1).order_by(desc(User.name)).all() print(users)
複数のフィルター関数
print('多个过滤函数', end='\n') users = User.query.filter_by(role_id=1).order_by(desc(User.name)).limit(3).offset(1).all() print(users) users = User.query.filter_by(role_id=1).order_by(desc(User.name)).slice(1,4).all() print(users)
ページング。最初のパラメーターはデータのどのページが表示されるかを示し、2 番目のパラメーターは各ページの表示を示します。ページ データ数
print('分页显示', end='\n') users = User.query.paginate(1,5) print(users.items) users = User.query.paginate(2, 5) print(users.items)
以上がflask_sqlalchemy が Python でデータベースを操作する方法の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









MySQLは、そのパフォーマンス、信頼性、使いやすさ、コミュニティサポートに選択されています。 1.MYSQLは、複数のデータ型と高度なクエリ操作をサポートし、効率的なデータストレージおよび検索機能を提供します。 2.クライアントサーバーアーキテクチャと複数のストレージエンジンを採用して、トランザクションとクエリの最適化をサポートします。 3.使いやすく、さまざまなオペレーティングシステムとプログラミング言語をサポートしています。 4.強力なコミュニティサポートを提供し、豊富なリソースとソリューションを提供します。

Oracle Databaseファイル構造には、データファイル:実際のデータの保存が含まれます。制御ファイル:データベース構造情報を記録します。ログファイルをやり直す:データの一貫性を確保するために、トランザクション操作を記録します。パラメーターファイル:パフォーマンスを最適化するためのデータベースを実行するパラメーターを含みます。アーカイブログファイル:災害復旧のためのバックアップREDOログファイル。

MySQLはオープンソースのリレーショナルデータベース管理システムであり、主にデータを迅速かつ確実に保存および取得するために使用されます。その実用的な原則には、クライアントリクエスト、クエリ解像度、クエリの実行、返品結果が含まれます。使用法の例には、テーブルの作成、データの挿入とクエリ、および参加操作などの高度な機能が含まれます。一般的なエラーには、SQL構文、データ型、およびアクセス許可、および最適化の提案には、インデックスの使用、最適化されたクエリ、およびテーブルの分割が含まれます。

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

Oracleデータベースログインには、ユーザー名とパスワードだけでなく、接続文字列(サーバー情報と資格情報を含む)および認証方法も含まれます。 SQL*Plusおよびプログラミング言語コネクタをサポートし、ユーザー名とパスワード、Kerberos、LDAPなどの認証オプションを提供します。一般的なエラーには、接続文字列エラーと無効なユーザー名/パスワードが含まれますが、ベストプラクティスは接続プーリング、パラメーター化されたクエリ、インデックス作成、セキュリティの資格情報の処理に焦点を当てています。

MySQLのフィールド操作ガイド:フィールドを追加、変更、削除します。フィールドを追加:table table_nameを変更するcolumn_name data_type [not null] [default default_value] [プライマリキー] [auto_increment]フィールドの変更:column_name data_typeを変更するcolumn_name data_type [not null] [default default_value] [プライマリキー]

データベースとプログラミングにおけるMySQLの位置は非常に重要です。これは、さまざまなアプリケーションシナリオで広く使用されているオープンソースのリレーショナルデータベース管理システムです。 1)MySQLは、効率的なデータストレージ、組織、および検索機能を提供し、Web、モバイル、およびエンタープライズレベルのシステムをサポートします。 2)クライアントサーバーアーキテクチャを使用し、複数のストレージエンジンとインデックスの最適化をサポートします。 3)基本的な使用には、テーブルの作成とデータの挿入が含まれ、高度な使用法にはマルチテーブル結合と複雑なクエリが含まれます。 4)SQL構文エラーやパフォーマンスの問題などのよくある質問は、説明コマンドとスロークエリログを介してデバッグできます。 5)パフォーマンス最適化方法には、インデックスの合理的な使用、最適化されたクエリ、およびキャッシュの使用が含まれます。ベストプラクティスには、トランザクションと準備された星の使用が含まれます

MySQLの「ユーザーのアクセス拒否」を解決する方法エラー:1。ユーザーの許可を確認して、データベースに接続します。 2。パスワードをリセットします。 3.リモート接続を許可します。 4。更新権限。 5.データベースサーバーの構成(Bind-Address、Skip-Grant-Tables)を確認します。 6.ファイアウォールルールを確認します。 7.MySQLサービスを再起動します。ヒント:データベースをバックアップした後に変更を加えます。
