質問編集履歴

1 hoge

drer

drer score 20

2016/10/08 22:18  投稿

掲示板の構造について
現在掲示板を作ろうと思っています。
現在は書き込み、だけができる仮のものを作っているのですが、スレッド作成などはテーブルを新しくつくればいいのでしょうか。一般的にどんな構造なのか教えてほしいです。
```html
<!doctype html>
<head>
<title>掲示板</title>
</head>
<body>
<h1>つぶやく</h1><hr>
<form name="Form" method="POST" action="./show.py">
name: <input type="text" size="30" name="name">
mail: <input type="text" size="30" name="mail"><br>
message: <input type="text" size="100" name="message"><br>
<input type="submit" value="submit" name="button">
</form>
</body>
</html>
```
```python
#!C:\Python34\python.exe
# -*- coding: utf-8 -*-
import pymysql
import cgi, sys, io
from datetime import datetime
class MainSys:
   f = cgi.FieldStorage()
   def __init__(self, *rec):
       self._connection = None
       self._cursor = None
       self._name = MainSys.f.getfirst(rec[0], '')
       self._mail = MainSys.f.getfirst(rec[1], '')
       self._message = MainSys.f.getfirst(rec[2], '')
   @property
   def Name(self):
       return self._name
   
   @property
   def Mail(self):
       return self._mail
   
   @property
   def Message(self):
       return self._message
   
   def set_con(self, *con):
       self._connection = pymysql.connect(host=con[0],
                                       user=con[1],
                                       password=con[2],
                                       db=con[3],
                                       charset=con[4]);
       self._cursor = self._connection.cursor()
   def read_db(self, sql):
       self._cursor.execute(sql)
       for r in self._cursor.fetchall():
           yield r
   def write_db(self, sql, *rec):
       self._cursor.execute(sql, (rec[0], rec[1], rec[2]))
       self._connection.commit()
   def close_db(self):
       self._cursor.close()
       self._connection.close()
```
```python
#!C:\Python34\python.exe
# -*- coding: utf-8 -*-
import cgi, sys, io
from system.main_sys import MainSys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
print('Content-Type: text/html\n')
print('<!doctype html>\n<body>')
s = MainSys('name', 'mail', 'message')
s.set_con('localhost', 'root', 'mirohitogagominoyouda', 'keiziban', 'utf8')
s.set_con('localhost', 'root', 'pass', 'keiziban', 'utf8')
def show():
   for wd in iter(s.read_db('select name, mail, message from keiziban.usershow')):
       for inwd in wd:
           print('<p>', inwd, '</p>')
       print('<hr>')
if s.Name != '' and s.Mail != '' and s.Message != '':
   s.write_db('insert into usershow (name, mail, message) values (%s, %s, %s)', s.Name, s.Mail, s.Message)
   show()
else:
   show()
s.close_db()
print('</body>\n</html>')
```
とりあえずはこんな感じで書いているのですが、これからどのようにしていけばいいのでしょうか
  • Python

    34218 questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • MySQL

    11600 questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • Python 3.x

    18457 questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る