python)formによるデータ生成/転送
13596 ワード
「フォームを使用したデータ生成/転送」
#!/usr/local/bin/python3
print("Content-Type: text/html")
print()
import cgi, os
files = os.listdir('data')
listStr = " "
for item in files:
listStr += '<li><a href="index.py?id={name}">{name}</a></li>'.format(name=item)
form = cgi.FieldStorage()
if 'id' in form:
pageId = form["id"].value
description = open('data/'+pageId, 'r').read()
else:
pageId = 'Welcome'
description = 'Hello, web'
print('''<!doctype html>
<html>
<head>
<title>WEB1 - Welcome</title>
<meta charset="utf-8">
</head>
<body>
<h1><a href="index.py">WEB</a></h1>
<ol>{listStr}</ol>
<h2>{title}</h2>
<p>{desc}</p>
</body>
</html>
'''.format(title = pageId, desc = description, listStr = listStr))
以上のように複数のデータ(記事タイトル、本文、タイトルリスト)はファイルによって制御されます.
Webアプリケーション
データの作成と転送を実現します.
1)データを生成できるページを作成します.pyという名前のファイルを作成し、実行権限を付与
(ターミナル-create.pyがあるディレクトリで実行)
sudo chmod a+x create.py
注意)create.pyはindexです.pyのコードと似ているため、インデックス.pyをコピーして生成
2) index.pyで作成します.pyへのリンク
<a href="create.py">create</a>
3) index.pyからデータを生成するテーブル(フォーム)を作成するには<form action="process_create.py">
<p><input type="text" name="title" placeholder="title"><p>
<textarea rows="4" name="title" placeholder="description"></textarea>
<input type="submit">
</form>
< form action="">
データの送信先を設定
< input type="text">
入力可能なテキストのセルを1つ作成
< input type="submit">
submit(コミット)ボタンの作成
< input name=""> & < textarea name="">
データ転送時にㅇの名義で転送
< input placeholder=""> & < textarea placeholder="">
入力ボックスに表示される文
create.pyページには、データ合成フォームのみが表示されます
else条件文のpageId値とdescription値を「」に変更
Inputラベルをpラベルで囲んで改行する(pラベルはブロック要素)
4)フォームタグの転送方法をpostに変更する.
<form action="process_create.py" method="post">
データを作成および転送します.
「転送」ページのアドレスにクエリー・リストが含まれている場合は、
別のユーザーがアドレスに接続されています.
転送されたデータを変更または削除する問題が発生する可能性があります.
ユーザーが情報を取得するサイトです.
get方式を使用するとurlアドレスにクエリーリストが含まれます.
urlをクエリーを含むリストに共有すると、アクセス者はより正確なアドレスにアクセスできます.
ただし、ユーザがデータを作成、変更または削除することによってデータを送信する場合、
他のユーザーが転送されたデータにアクセスできないことを確認します.
秘密裏にデータを送信するpost方式を使用するべきです.
5) create.pyの最終コードは以下の通りです.
#!/usr/local/bin/python3
print("Content-Type: text/html")
print()
import cgi, os
files = os.listdir('data')
listStr = " "
for item in files:
listStr += '<li><a href="index.py?id={name}">{name}</a></li>'.format(name=item)
form = cgi.FieldStorage()
if 'id' in form:
pageId = form["id"].value
description = open('data/'+pageId, 'r').read()
else:
pageId = ''
description = ''
print('''<!doctype html>
<html>
<head>
<title>WEB1 - Welcome</title>
<meta charset="utf-8">
</head>
<body>
<h1><a href="index.py">WEB</a></h1>
<ol>{listStr}</ol>
<a href="create.py">create</a>
<form action="process_create.py">
<p><input type="text" name="title" placeholder="title"></p>
<textarea rows="4" name="title" placeholder="description"></textarea>
<p><input type="submit"></p>
</form>
<h2>{title}</h2>
<p>{desc}</p>
</body>
</html>
'''.format(title = pageId, desc = description, listStr = listStr))
[ソース]ライフコードWEB 2-Pythonhttps://opentutorials.org/module/3357
Reference
この問題について(python)formによるデータ生成/転送), 我々は、より多くの情報をここで見つけました https://velog.io/@ssoulll/python-form-을-이용한-데이터-생성전송-기능-구현テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol