フラスコ+ SQLAlchemyの変更チェックが削除されました

効果:

main.py

UTF-8:1#コーディング
SQLAlchemyのインポートcheck制約、列、整数、テキスト、or_から
sqlalchemy.schemaからインポートFetchedValue 
flask_sqlalchemyインポートSQLAlchemyのから
フラスコインポートフラスコから、なurl_for、リダイレクト、render_template、リクエスト、フラッシュ、CURRENT_APPの
インポートOS、SYS 

アプリ=フラスコ(__ name__)
BASEDIR = os.path.abspath(os.path.dirname(__ FILE__))
App.configファイル[ 'SQLALCHEMY_DATABASE_URI'] = 'のSQLite:///test.db' 
App.configファイル[ 'SQLALCHEMY_TRACK_MODIFICATIONS'] =真の

デシベル= SQLAlchemyの(アプリ)

クラスの先生(db.Model):
    __tablename__ = '教師
    ID = db.Column(db.Integer、PRIMARY_KEY = TRUE)
    名= db.Column(db.Text) 
    年齢= db.Column( db.Integer)
    国= db.Column(db.Text) 
    他:

    :DEF(自己、名前、年齢、国)__init __ 
        self.Name =名前
        self.Age =年齢
        self.Country =国
app.route @( '/'、メソッド= [ 'GET'])
DEF家():
    記事= Teacher.query.all()
    の戻りrender_template( 'show_article.html'、記事=記事)     
@ app.route( '/検索')
デフ(検索):
    キーワード= request.args.get( 'キーワード')
    プリント(キーワード)
    結果= Teacher.query.filter(or_(Teacher.Name ==キーワード、Teacher.Age ==キーワード、Teacher.Country ==キーワード))すべて()。
    もし結果:
        リターンrender_template( 'show_article.html'、記事=結果)
        復帰「NOコンテンツが見つかりませんでした!」
@ app.route( '/リスト/更新/ <ID>'、メソッド= [ 'GET'、 'POST'])
DEF MODI(ID)
    :request.method == 'GET'であれば
        、結果= Teacher.query。 filter_by(ID = ID).first_or_404()
        の戻りrender_template( 'update_article.html'、記事=結果)
    他:
        名前=のRequest.Form [ '名前'] 
        年齢=のRequest.Form [ '年齢'] 
        国=のRequest.Form [ '国']     
        結果= Teacher.query.filter_by(ID = ID).update({ 'name'の名前、 '年齢':年齢、 '国':国})
        db.session.commit()
        リターンリダイレクト( '/')
@ app.route( '/ <ID>'、        
    もしrequest.method == 'GET': 
        結果= Teacher.query.filter_by(ID = ID).first.or_404
        リターンrender_template( 'show_article.html'、記事=結果)
    他:
        結果= Teacher.query.filter_by(ID = ID).delete()
        db.session.commit()
        の戻り''、204 
@ app.route( '/ favicon.icoを')
DEFファビコン():
    リターンsend_from_directory(os.path.join(app.root_path、 '静的')、
                               'favicon.icoを'、MIMEタイプ='画像/ vnd.microsoft.icon ')         
__name__場合== '__main__':
    app.run(ポート= 8081)      

 

show_article.html

<!DOCTYPE HTML> 
<HTML> 
<HEAD> 
<リンクのhref = "// www.w3cschool.cn/statics/plugins/bootstrapold/css/bootstrap.min.css"のrel = "スタイルシート"> 
<スクリプトSRC = "HTTPS ://cdn.bootcss.com/jquery/1.12.4/jquery.min.js "> </スクリプト> 
<リンクREL ="ショートカットアイコン"HREF =" {{( '静的'なurl_for、ファイル名= 'ファビコン。 ICO ')}} "> 
</ head> 
<body> 
<! -ジンジャ模板语法- > 
<div> 
    <フォームメソッド=" GET」ACTION = "{{なurl_for( '}})'検索" /> 
        <入力タイプは、= "text"の名= "キーワード" /> 
        <入力タイプ= "提出" /> 
        <スパン> <A HREF = "{{なurl_for( 'ホーム')}}">ホーム</a>を</ span>を
    </ FORM> 
    
</ div> 
<表のスタイル= "幅:240ピクセル"クラス= "テーブルテーブルストライプ" > 
    <THEAD>
        <TR> 
                <TD> <スパンクラス= "ラベルのラベル情報"> <A HREF = "/リスト/更新/ {{article.Id}}"スタイル= "色:白 ">修改</a>を</ span>を</ TD>
            <番目のスタイル= "幅:120ピクセル">名前</目> 
            <番目のスタイル= "幅:60PX">年齢</目> 
            <番目のスタイル"幅:60PX">国</目> 
        </ TR> 
    </ THEAD> 
    <TBODY>                  
        {%であれば物品%} 
            {物品%の資料用%} 
            <TR> 
                <TD> {{article.Name}} </ TD>    
                <TD> {{article.Age}} </ TD>    
                <TD> {{article.Country}} </ TD> 
                <TD> <スパンクラス= "ラベルラベル成功"> <A HREF = "#"クラス= "BTN-削除"援助= "{{article.Id }} "スタイル="色:白">删除</a>の</スパン> </ TD> 
            </ TR> 
            {%ENDFOR%} 
    </ TBODY> 
        {%他%}
            <pは>いいえコンテンツが見つかりませんでした!</ P> 
        {%endifの%} 

ます。<script type = "text / javascriptの"> 
    $( 'a.btn-削除')。()、機能(EVTを'クリック'の{ 
        EVT .preventDefault(); 
        VAR援助= $(この).ATTR( '援助'); 
        $アヤックス({ 
            URL: "/" +援助、
            種類: "DELETE"、
            contentTypeの: "アプリケーション/ jsonの" 
            成功:機能(RESP){ 
                window.open( "/"、 "_自己"); 
            }、
            エラー:関数(RESP){ 
                アラート( "删除博文失败详情:!" + resp.message); 
            } 
        })
    })。
</ SCRIPT>

  

update_article.html

<!DOCTYPE HTML> 
<HTML> 
<HEAD> 
<リンクREL = "ショートカットアイコン" HREF = "{{なurl_for( '静的'、ファイル名= 'favicon.icoを')}}"> 
</ head> 
<body> 
    < DIV> 
        <フォームアクション= "/リスト/更新/ {{article.Id}}" METHOD = "POST"> 
       
                <ラベル>名:<ラベル> 
                の<input type = "text"の名= "名前"値= "{ {article.Name}}」/> 
                <br>ログイン
                <ラベル>年齢:</ラベル> 
                の<input type = "text"の名= "年齢"値= "{{article.Age}}" /> 
                < BR> <BR>
                <ラベル>国</ラベル> 
                の<input type = "text"の名= "カントリー"値= "{{article.Country}}" /> 
                <br>ログイン   
                <input type =送信/> 
        </ TABLE> 
        <TBODY> 
        </ FORM> 
    </ div> 
<BODY> 
</ HTML>

  

  

おすすめ

転載: www.cnblogs.com/luoye00/p/12176074.html