0

私は web.py フレームワークを使用して、データベースのすべてのレコードを表示する小さな Web ページを開発しています。

以下は私のコードです

list_page.html

$def with ( select_query )
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>List Page</title>
</head>
<body>
 <form method="POST" action="/retrieve">
 <table border="1">
   <tr>
    <td>Select</td><td>Column_two</td><td>Column_three</td><td>Column_four</td><td>Column_five</td>
   </tr>
  $for r in select_query:
   <tr>
    <td><p align = "center"><input type="checkbox" id="$r.id" value="" name="$r.id"/></p></td>
    <td>$r.Listing_Name</td><td>$r.Address</td><td>$r.Pincode</td><td>$r.Phone</td>
   </tr>
 </table>
   <br/>
  <p><button id="submit" name="select_unselect">Select All/Unselect All</button></p>
  <p><button id="submit" name="submit">Retrieve</button></p>
</form>

したがって、上記の html ページから、データベースからの結果が表の形式で表示されます。

実際、Pythonでjqueryを使用してチェックボックスのチェック/チェック解除を実装しようとしています。

以下は私のindex.py コードです

import web   
render = web.template.render('templates/')
db = web.database(dbn='mysql', db='Browser_Date', user='root', pw='redhat')
urls = ('/',   'Listpage',)
app = web.application(urls, globals())

class Listpage:

    def GET(self):
        select_query = db.select('File_upload')
        return render.list_page(select_query)

    def POST(self):
        i = web.input(groups = {})
        ids =  i.keys()
        ........
        ........
        web.header('Content-Type','text/csv')
        web.header('Content-disposition', 'attachment; filename=csv_file.csv')
        return csv_file.getvalue()

if __name__ == "__main__":
    web.internalerror = web.debugerror
    app.run() 

概念は、Web ページ (上に表示されている html) がデータベースからのレコードを表示し、チェック/チェック解除によるレコードの選択に基づいて、retrieveボタンをクリックした後に csv ファイルがページ上で選択されたレコードで生成されることです。

だから今、私は jquery を使用して一度にすべてのチェックボックスをチェック/チェック解除しようとしていますが、上記のhtmlコードでjqueryコードを開始する方法と書く場所がわからないので、jqueryでグーグル検索しましたが、本当に混乱しているので、SOに近づきました.

基本的に私はWeb開発の初心者であり、jqueryの実装/使用についてはわかりません。上記のコード/ HTMLファイルでチェックボックス機能のチェック/チェック解除を実装する方法を教えてください。コードをさらに簡単に拡張できるように

4

1 に答える 1

0

Python、web.py、html、javascript、jQuery は紛らわしいです。

これは強力ですが、最初に理解しようとすると非常に混乱します。実際には、少なくとも 3 つの異なるテクノロジを 1 つのユーザー エクスペリエンスに統合しているため、ハイブリッドのマルチプラットフォーム アプリケーションの観点から考える必要があります。

web.py サーバーとテンプレートは、静的コンテンツを Web ブラウザーに配信するだけです。それがWebサーバーの役割です。テンプレート コードを使用すると、サーバー側の Python で、クエリ文字列の引数などに基づいて決定を下すことができますが、最終的に実際に行っていることは、コード(html+javscript) を別のインタープリター (ブラウザー) に配信することだけです。PHP、Ruby、ASP... ブラウザ用のページを構築するという点では、それらはすべて同じです。

リクエストが配信されると、ブラウザが引き継ぎます。ユーザーが何かをクリックすると、そのクリックを処理するのは JavaScript インタープリターになります。Javascript(またはjquery)は、a)ユーザーを別のページにリダイレクトする、b)ローカルで操作する、またはc)ajaxを介して情報を送信/受信することができます。

(jQuery は JavaScript です...これは、純粋な JavaScript の風変わりな部分を単純化する素晴らしい方法です。)

したがって、典型的なワークフローは次のとおりです。

  • ユーザーリクエストhttp://localhost/index
  • web.py は render() を介してホームページを配信します
  • ブラウザはホームページ html を描画し、onload() javascript を処理します (ページは現在アイドル状態で、ユーザーの操作を待機しています)
  • ユーザーが何かをクリックすると、JavaScript 関数がクリックされたものを評価し、さらにデータを要求することを決定します
  • javascript は XmlHttpRequest (または jQuery では... $.ajax() ) を作成して発行します。
  • web.py がリクエストを処理します。たとえば、/home_tab_2 に対するものとしましょう
  • JavaScriptはページを更新します(element.innerHTML()またはjqueryなどで $(element).append()

これを書き留めておくと、最初の ajax アプリケーションで本当に役に立ちました。

于 2012-12-12T21:54:46.937 に答える