このチュートリアル シリーズの前の部分では、さまざまなユーザーが作成したウィッシュをアプリケーションのダッシュボード ページに入力しました。また、ユーザーが特定のウィッシュに「いいね!」できるように、各ウィッシュに「いいね!」ボタンを付けました。
シリーズのこのパートでは、いいね/嫌いの表示を切り替え、特定のウィッシュが受け取ったいいねの合計数を表示する方法を見ていきます。
使い始める
このチュートリアルの前の部分を GitHub から複製することから始めます。
リーリーソース コードのクローンを作成した後、プロジェクト ディレクトリに移動し、Web サーバーを起動します。
リーリーブラウザで http://localhost:5002/ を指定すると、アプリケーションが実行されるはずです。
「いいね!」を追加
まず、特定の願いが叶えられた総数を表示する機能を実装します。新しいウィッシュが追加されると、tbl_likes
テーブルにエントリが追加されます。したがって、MySQL ストアド プロシージャ sp_addWish
を変更して、tbl_likes
テーブルにエントリを追加します。
上記のストアド プロシージャ コードに示すように、tbl_wish
テーブルにウィッシュを挿入した後、最後に挿入された ID
を取得し、そのデータを tbl_likes## に挿入します。 # 表面。
sp_GetAllWishes ストアド プロシージャを変更して、各ウィッシュが受け取ったいいねの数を含める必要があります。 MySQL 関数を使用してウィッシュの総数を取得します。そこで、ウィッシュ
ID を取得し、いいねの合計数を返す
getSum という関数を作成します。
リーリー
sp_GetAllWishes で
getSum という名前の上記の MySQL 関数を呼び出して、各ウィッシュのいいねの合計数を取得します。
リーリー
getAllWishes Python メソッドを変更して、いいね数を含めます。 MySQL ストアド プロシージャから返された結果を反復処理する場合は、次のような like フィールドを含めます:
リーリー
JavaScript メソッドを変更して、いいね数を表示するために使用する追加のスコープを作成します。
リーリー
そして
を親段落 p
に追加します。これは、変更された CreateThumb
JavaScript 関数です。
リーリー
jQuery AJAX 呼び出し
の成功コールバックで CreateThumb
JavaScript 関数を呼び出すときに、like
パラメーターを含めます。
リーリー
変更を保存し、サーバーを再起動します。アプリにログインすると、各願いに対応する「いいね!」の数が表示されるはずです。
願いが気に入ったかどうかを表示
各ウィッシュの下の「いいね!」の数を確認します。ログインしているユーザーがそのウィッシュに「いいね!」をしたかどうかは不明です。したがって、
You & 20 Others のような正しいメッセージが表示されます。これを実現するには、sp_GetAllWishes
を変更して、ログインしているユーザーが特定のウィッシュを好むかどうかを示すコードを含める必要があります。ウィッシュが気に入ったかどうかを確認するには、関数呼び出しを行います。ユーザー ID
とウィッシュ ID
をパラメーターとして受け取り、ウィッシュがユーザーに気に入られたかどうかを返す hasLiked
という名前の関数を作成します。
リーリー
ここで、
sp_GetAllWishes
hasLiked を呼び出し、返されたデータセットにユーザーのいいねステータスを示す追加フィールドを返します。
リーリー
app.py
sp_GetAllWishes への呼び出しを変更して、ユーザー
ID をパラメータとして含めます。
リーリー
次に、
getAllWishes
HasLiked を含めるようにコードを変更します。
リーリー
#CreateThumb
JavaScript 関数で、
をチェックし、それに応じて HTML を追加します。
リーリー
上記のコードに示されているように、ユーザーが特定のウィッシュを気に入らない場合は、いいね数を表示します。ユーザーがこの願いを気に入った場合は、より説明的なメッセージが表示されます。
「いいね!」ボタンをクリックすると、データベース内の「いいね!」ステータスが更新されますが、ダッシュボードでは変更されません。そこで、
ボタンがクリックされたときの AJAX 呼び出しの成功コールバックでこれを更新しましょう。
我们首先对 MySQL 存储过程 sp_AddUpdateLikes
进行更改。早些时候,我们传递了喜欢的状态,1 表示喜欢,0 表示不喜欢。我们将对其进行修改并在存储过程中切换类似/不同。打开 sp_AddUpdateLikes
并将赞状态选择到变量中并检查变量状态。如果变量状态为“相似”,我们会将状态更新为“相似”,反之亦然。以下是修改后的 sp_AddUpdateLikes
存储过程。
-- -------------------------------------------------------------------------------- -- Routine DDL -- Note: comments before and after the routine body will not be stored by the server -- -------------------------------------------------------------------------------- DELIMITER $$ CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_AddUpdateLikes`( p_wish_id int, p_user_id int, p_like int ) BEGIN if (select exists (select 1 from tbl_likes where wish_id = p_wish_id and user_id = p_user_id)) then select wish_like into @currentVal from tbl_likes where wish_id = p_wish_id and user_id = p_user_id; if @currentVal = 0 then update tbl_likes set wish_like = 1 where wish_id = p_wish_id and user_id = p_user_id; else update tbl_likes set wish_like = 0 where wish_id = p_wish_id and user_id = p_user_id; end if; else insert into tbl_likes( wish_id, user_id, wish_like ) values( p_wish_id, p_user_id, p_like ); end if; END
在CreateThumb
JavaScript函数中,为我们之前创建的likeSpan
分配一个ID
,这样我们就可以根据需要更新状态.
var likeSpan = $('<span>').attr({'aria-hidden':'true','id':'span_'+id});
打开 app.py
。在 addUpdateLike
方法中,一旦数据更新成功,我们将使用另一个存储过程调用来获取愿望之类的计数和状态。因此,创建一个名为 sp_getLikeStatus
的 MySQL 存储过程。在 sp_getLikeStatus
中,我们将调用已创建的 MySQL 函数 getSum
和 hasLiked
来获取状态。
DELIMITER $$ CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_getLikeStatus`( IN p_wish_id int, IN p_user_id int ) BEGIN select getSum(p_wish_id),hasLiked(p_wish_id,p_user_id); END$$ DELIMITER ;
从 Python 方法 addUpdateLike
调用 sp_AddUpdateLikes
后,关闭光标和连接。
if len(data) is 0: conn.commit() cursor.close() conn.close()
现在调用存储过程 sp_getLikeStatus
。
conn = mysql.connect() cursor = conn.cursor() cursor.callproc('sp_getLikeStatus',(_wishId,_user)) result = cursor.fetchall()
随响应一起返回点赞计数和点赞状态。
return json.dumps({'status':'OK','total':result[0][0],'likeStatus':result[0][1]})
在dashboard.html
中,在对addUpdateLike
方法进行AJAX调用的成功回调中,解析返回的响应并根据点赞状态显示点赞计数.
success: function(response) { var obj = JSON.parse(response); if (obj.likeStatus == "1") { $('#span_' + spId).html(' You & ' + (Number(obj.total) - 1) + ' Others'); } else { $('#span_' + spId).html(' ' + obj.total + ' like(s)'); } }
保存更改,重新启动服务器,然后使用有效凭据登录。进入仪表板页面后,尝试点赞某个特定愿望,然后查看点赞状态如何相应更新。
总结
在本系列的这一部分中,我们为仪表板页面中显示的愿望实现了类似/不同的功能。在本系列的后续部分中,我们将在应用程序中实现更多新功能并完善一些现有功能。
请在下面的评论中告诉我们您的想法和建议或任何更正。本教程的源代码可在 GitHub 上获取。
以上がパート 8: Python Flask および MySQL Web アプリケーションを最初から開発するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Pythonの柔軟性は、マルチパラダイムサポートと動的タイプシステムに反映されていますが、使いやすさはシンプルな構文とリッチ標準ライブラリに由来しています。 1。柔軟性:オブジェクト指向、機能的および手続き的プログラミングをサポートし、動的タイプシステムは開発効率を向上させます。 2。使いやすさ:文法は自然言語に近く、標準的なライブラリは幅広い機能をカバーし、開発プロセスを簡素化します。

Pythonは、初心者から上級開発者までのすべてのニーズに適した、そのシンプルさとパワーに非常に好まれています。その汎用性は、次のことに反映されています。1)学習と使用が簡単、シンプルな構文。 2)Numpy、Pandasなどの豊富なライブラリとフレームワーク。 3)さまざまなオペレーティングシステムで実行できるクロスプラットフォームサポート。 4)作業効率を向上させるためのスクリプトおよび自動化タスクに適しています。

はい、1日2時間でPythonを学びます。 1.合理的な学習計画を作成します。2。適切な学習リソースを選択します。3。実践を通じて学んだ知識を統合します。これらの手順は、短時間でPythonをマスターするのに役立ちます。

Pythonは迅速な開発とデータ処理に適していますが、Cは高性能および基礎となる制御に適しています。 1)Pythonは、簡潔な構文を備えた使いやすく、データサイエンスやWeb開発に適しています。 2)Cは高性能で正確な制御を持ち、ゲームやシステムのプログラミングでよく使用されます。

Pythonを学ぶのに必要な時間は、人によって異なり、主に以前のプログラミングの経験、学習の動機付け、学習リソースと方法、学習リズムの影響を受けます。現実的な学習目標を設定し、実用的なプロジェクトを通じて最善を尽くします。

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。

限られた時間でPythonの学習効率を最大化するには、PythonのDateTime、時間、およびスケジュールモジュールを使用できます。 1. DateTimeモジュールは、学習時間を記録および計画するために使用されます。 2。時間モジュールは、勉強と休息の時間を設定するのに役立ちます。 3.スケジュールモジュールは、毎週の学習タスクを自動的に配置します。

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

WebStorm Mac版
便利なJavaScript開発ツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

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