アヤックス+のJSONの前景色とのデータ交換:百五十から四への道を開いた測定

 

実際には、前端と後端は、データ処理の後端後、パスJSON遠位先端部は、次に解析され、データ交換フォーマットJSONのほとんどで使用されています

プロジェクト構造

データ・ディクショナリに方法を参加モデル

日時インポート日時から
flask_sqlalchemyインポートSQLAlchemyのから

デシベル= SQLAlchemyの()


クラス部門(db.Model)
"" "部门"""
__tablename__ = '部門'
#1 PRIMARY_KEY =真:主键、自動インクリメント=真:自动递增
ID =デシベル。コラム(db.Integer、primary_key = Trueを、自動インクリメント=真)
名= db.Column(db.String(50)、真=ユニーク)

デフ__init __(自己、名):
self.name =名前

デフ__repr __(自己):
リターンF '部门{self.id}、{self.name}'

DEF to_jsonを(自己):
"" "用于后面把SQLAlchemyの的内容转成JSON对象"""
を返す辞書(ID = self.id、名前= self.name)


クラスの従業員(db.Model):
"" "员工"""
__tablename__ = '従業員'
#PRIMARY_KEY =真:主键、自動インクリメント=真:自动递增
ID = db.Column(db.Integer、primary_key = Trueを、自動インクリメント=真)
名= db.Column(db.String(50))
性別= db.Column(db.String)
仕事= db.Column(db.String)
生年月日= db.Column(db.Date)
idcard = db.Column(db.String)
アドレス= db.Column(db.String)
給与= db.Column(db.Float)
release_time = db.Column(db.DateTime)

の外键:db.Column(db.Integer、db.ForeignKey(表名))
DEPARTMENT_ID = db.Column(db.Integer、DB .ForeignKey( 'department.id'))#声明是外键、为部門表的のID字段

#のdb.relationship( '部門'、後方参照= db.backref( '従業員'、怠惰= 'ダイナミック'))
#1 db.relationship(主键类名、後方参照=引用属性名、遅延= '動的'))
怠惰:延迟查询:ダイナミック:动态、選択、サブクエリ、参加
部門= db.relationship( 'カテゴリー'、後方参照= DB .backref( '従業員'、怠惰= 'ダイナミック'))#类与表的关系

デフ__init __(自己、名前=なし、性別=なし、仕事=なし、誕生日=なし、idcard =なし、アドレス=なし、給与=なし、
release_time =なし):
self.name =名前
self.gender =性別
self.job =ジョブ
self.birthdate =誕生日
self.idcard = idcard
self.address =アドレス
self.salary =給与
release_time場合self.release_time = release_time他datetime.now()

デフ__repr __(自己):
fを返す'従業:{self.nameのself.address self.salary} self.id {}を{} {}'

to_jsonを(自己)をDEF:
"" "" "コンテンツSQLAlchemyののJSONオブジェクトの後の転送のために、"
リターン辞書(self.idのID =、= self.name名、住所= self.address、給与= self.salary)


IF __name__ == '__main__':
db.create_all()

EMP-json.html

<!DOCTYPE HTML> 
<HTML LANG = "EN">
<HEAD>
<メタ文字コード= "UTF-8">
<タイトル> josn数据</ TITLE>
<スクリプトSRC = "https://cdn.bootcss.com/ jqueryの/ 2.2.4 / jquery.min.js "> </ SCRIPT>
</ HEAD>
<BODY>
部门:<選択名="部门"ID = "部門"> </>を選択
姓名ます。<input type ="テキスト」ID = "名前">
の<input type = "ボタン"値= "点击查询" ID = "btnSearch">
<div要素のid = "EMP-リスト"> </ div>
</ BODY>
</ HTML>
<スクリプト>
$(ドキュメント)。レディ(関数(){
情報部門を置く準備ができて//ページが判明し、ドロップダウンリスト内の部門にレンダリング後
の$アヤックス({
URL:「/部署/」、
メソッド,:「GET」、
データ型: " JSON」、
成功:機能(DEPTS){
$ .each(DEPTS、機能(I、アイテム){
$( '#部門')。追加( '<オプション値= "' + item.id + '">' + item.name + '</オプション>' );
});
}
})。

//查询按钮点击事件
。$( '#btnSearch')をクリックします(関数(){
VAR DEPT_ID = $( '#部門')のval();
変数名= $( '#名')のval();
$アヤックス({
URL: '/ EMP-情報/'、
メソッド'GET'、
データ:{ '名前':名前、 '部門':DEPT_ID}、
成功:機能(DATAS){
$( '#emp-リスト')。
}); } } })。 }); }); </ SCRIPT>













main.py

jsonify、要求、からrender_templateフラスコフラスコをインポートする
インポートSQLAlchemyのflask_sqlalchemyから
従業員からのインポートが、部門personal.models

(__ name__、static_url_path = '')アプリケーションはフラスコ=
DB = SQLAlchemyの(APP)

App.configファイル[ 'SQLALCHEMY_DATABASE_URI'] =「のSQLite :///./db/test.db '#と、アドレスデータベースタイプ宣言
App.configファイル[' SQLALCHEMY_TRACK_MODIFICATIONSは'] = TRUE #1 トラックが変化


[SQLALCHEMY_ECHO「] =#App.configファイルが'真# この、対応する印刷SQLをSQLでの種類どのように


返す部門情報#1
@のapp.route( '/部門/')
:DEF()get_department
""「のシングル場合
DEPT = Department.query.first()
の戻りjsonify(dept.to_json())
"" "
複数のケースの
DEPTS =部門。query.all()
jsonifyリターン([DEPTSにおける日間d.to_json()])


app.route( '/ EMP-情報/')@
DEF EMP_INFO():
"" "
1、部門のスタッフの良い名前を照会するアドレスバーから取得
2、部門と従業員名、従業員情報に応じて取得する
情報JSON形式戻り、3
「」 "
(『 『名称』』)名前= request.args.getを
DEPT = request.args.getを(『部門』、『』 )
#= db.session.query DATAS(従業員).filter(Employee.name ==名、Employee.department_id ==部門)
DATAS = db.session.query(従業員).filter(Employee.name ==名)。フィルタ(Employee.department_id ==部門)
DATAS IF:
({jsonify返す
0、 'ステータス'
'DATAS':[D.DATASにおけるD]のためto_jsonを()
})
jsonify返します({
'ステータス':1、
'DATAS':[]
})


app.route( '/ EMP-JSON /')@
DEF emp_json():
戻りrender_template( 'EMP-json.html')


場合__name__ == '__main__' :
app.run(デバッグ=真)

データ:

アクセス

有効なデータ

無効なデータは、それがレンダリングされていない、コンテンツがクリアされます

 

おすすめ

転載: www.cnblogs.com/zhongyehai/p/11569249.html
おすすめ