Когда я пытаюсь ввести данные в текстовое поле греческими буквами, мой скрипт wsgi сохраняет эти данные в виде базы данных в базе данных MySQL, и я не знаю почему.
Вот относительный код, когда данные собираются опубликовать с помощью метода формы:
pdata = pdata + '''
<form methods="POST" enctype="multipart/form-data" action="%s">
<tr>
<td> <center> <input type="text" name="task" size=50> </td>
<td> <center> <input type="text" name="price" size=5> </td>
<td> <center> <input type="text" name="lastvisit"> </td>
</table><br><br>
<td> <input type="image" src="/static/img/submit.gif" name="update" value="Ενημέρωση!"> </td>
</tr>
</form>
''' % app.get_url( '/update/<name>', name=name )
pdata = pdata + "<meta http-equiv='REFRESH' content='200;%s'>" % app.get_url( '/' )
return pdata
А вот относительная функция обратного вызова, которая пытается ввести данные размещенной формы в базу данных MySQL.
@app.route( '/update/<name>' )
def update( name ):
pdata = ''
task = request.query.get('task')
price = request.query.get('price')
lastvisit = request.query.get('lastvisit')
# check if date entered as intented, format it properly for MySQL
lastvisit = datetime.strptime(lastvisit, '%d %m %Y').strftime('%Y-%m-%d')
if( ( task and len(task) <= 200 ) and ( price and price.isdigit() and len(price) <= 3 ) and lastvisit != "error" ):
# find the requested client based on its name
cur.execute('''SELECT ID FROM clients WHERE name = %s''', name )
clientID = cur.fetchone()[0]
try:
# found the client, save primary key and use it to issue hits & money UPDATE
cur.execute('''UPDATE clients SET hits = hits + 1, money = money + %s WHERE ID = %s''', ( int(price), clientID ))
# update client profile by adding a new record
cur.execute('''INSERT INTO jobs (clientID, task, price, lastvisit) VALUES (%s, %s, %s, %s)''', ( clientID, task, price, lastvisit ))
except:
cur.rollback()
Я не могу понять, почему данные хранятся в базе данных как ненастоящие слова вместо надлежащего utf-8. Также попытка использовать тип кодировки utf-8 также не сработала.
<form methods="POST" enctype="utf-8" action="%s">