Я пытаюсь отобразить сетку в разных ориентациях в Python. Есть ли другой способ сделать это по вертикали, по диагонали и т. Д.? Я также иногда получаю сообщение об ошибке «локальная переменная« ошибка », на которую ссылаются перед присваиванием» по какой-то причине, тогда как в другой программе Flask, над которой я работал, с такой проблемой я не сталкивался. В настоящее время сетка отображает цвета по горизонтали.
РЕДАКТИРОВАТЬ - Таким образом, мне удалось решить проблему с указанной ссылкой до ошибки присвоения, оказалось, что это проблема с отступом. Я попытался изменить цвета на сетке, поместив значение с переменной, помечающей цвет вместо этого, это ничего не делает. Я также добавил метод запроса if == 'GET' ниже метода запроса POST и указывал прерывание, если сделан запрос get.
Тем не менее, я не имею ни малейшего понятия о том, как приблизиться к перестановке сетки в запросе POST. Я добавил в request.form ['type.h-stripes'], который возвращает неверный ответ вместе с неопределенностью shuffle, когда я следовал примеру, указанному в документации.
from flask import Flask, render_template, request
import time
import random
app = Flask(__name__) # creates applications instance
app.config.from_object(__name__) # loads configuration from this file, flaskr.py
@app.route('/', methods=['GET', 'POST'])
def homepage():
#print ("time.time(): %f " % time.time())
#print (time.localtime(time.time()))
curent_time = (time.asctime(time.localtime(time.time())))
if request.method == 'POST':
error = None
type = request.form['type'] # takes the name value in the html
# Colour 4 being the last colour specified in the array, cahnging displaycolur1 (as an example) to #000000 will force the colour to display as a black colour as it is in hex value
randomcolourr1 = lambda: random.randint(0,255)
displaycolu1 = ('#%02X%02X%02X' % (randomcolourr1(),randomcolourr1(),randomcolourr1()))
randomcolourr2 = lambda: random.randint(0,255)
displaycolu2 = ('#%02X%02X%02X' % (randomcolourr2(),randomcolourr2(),randomcolourr2()))
randomcolourr3 = lambda: random.randint(0,255)
displaycolu3 = ('#%02X%02X%02X' % (randomcolourr3(),randomcolourr3(),randomcolourr3()))
randomcolourr4 = lambda: random.randint(0,255)
displaycolu4 = ('#%02X%02X%02X' % (randomcolourr4(),randomcolourr4(),randomcolourr4()))
randomcolourr5 = lambda: random.randint(0,255)
displaycolu5 = ('#%02X%02X%02X' % (randomcolourr5(),randomcolourr5(),randomcolourr5()))
*EDIT* if request.form['type.h-stripes']: # if request.form contains the type name and h-stripes value being selected
tablehori = ('color0, color1, color2, color3, color4'.split()) # takes colour values from the table td elements
shuffle(tablehori) # not defined
print (tablehori) # prints to console
return render_template('index-example.html', error=error, curent_time=curent_time, displaycolu1=displaycolu1, displaycolu2=displaycolu2, displaycolu3=displaycolu3, displaycolu4=displaycolu4, displaycolu5=displaycolu5)
if __name__ == '__main__':
app.run(debug=True)
<form method="POST">
<div class="settingpanel">
<label for="color_0">Color 1</label>
<input type="color" name="color0" id="color_0" value="{{ displaycolu1 }}">
<label for="color_1">Color 2</label>
<input type="color" name="color1" id="color_1" value="{{ displaycolu2 }}">
<label for="color_2">Color 3</label>
<input type="color" name="color2" id="color_2" value="{{ displaycolu3 }}">
<label for="color_3">Color 4</label>
<input type="color" name="color3" id="color_3" value="{{ displaycolu4 }}">
<label for="color_4">Color 5</label>
<input type="color" name="color4" id="color_4" value="{{ displaycolu5 }}">
</div>
<div class="settingpanel">
<input type="radio" name="type" value="h-stripes"
id="type_h-stripes" checked >
<label for="type_h-stripes">h-stripes</label>
<input type="radio" name="type" value="v-stripes"
id="type_v-stripes" >
<label for="type_v-stripes">v-stripes</label>
<input type="radio" name="type" value="carpet"
id="type_carpet" >
<label for="type_carpet">carpet</label>
<input type="radio" name="type" value="random"
id="type_random" >
<label for="type_random">random</label>
<input type="radio" name="type" value="diagonal"
id="type_diagonal" >
<label for="type_diagonal">diagonal</label>
</div>
<input type="submit" value="show">
</form>