简体   繁体   English

Python/Flask/Jinja - 为随机生成的键获取 Python 字典的值

[英]Python/Flask/Jinja - getting values to Python dictionary for randomly generated keys

I have small problem with my code.我的代码有小问题。 I try to get values from site to be stored in python dictionary.我尝试从站点获取值以存储在 python 字典中。 Problem is range of values is randomly generated so I cannot attach it to different variables.问题是值的范围是随机生成的,因此我无法将其附加到不同的变量。 I think I should use Jinja template for this, but I just cannot figure out how.我想我应该为此使用 Jinja 模板,但我就是不知道怎么做。 Could you help my somehow or let me know, where to look for an answer?你能以某种方式帮助我或让我知道,在哪里寻找答案? Thank you in advance.先感谢您。

Point 1: Code第 1 点:代码

from flask import Flask, render_template
import random


app = Flask (__name__)

@app.route('/')
def random_numbers_range():
    random.randrange(2, 20)
    list_numbers = []
    for i in range (random.randrange(2, 20)):
        list_numbers.append(i)
    return render_template('list.html', list_numbers = list_numbers)

if __name__ == "__main__":
    app.run(debug = False, port = 1234)

Point 2: Jinja template to create windows for value input and submit button第2点:Jinja模板创建windows用于值输入和提交按钮

  <!doctype html>
  {% for i in list_numbers %}
    <li>Number: <b>{{i}}</b></li>
        <div><label>Name it: <input type="text" name="powod"></label></div>        
  {% endfor %}
  <a href='/add_submit'><button>Submit</button></a>
  </ol>

Point 3: Site looks Site looks screen第 3 点:网站外观网站外观屏幕

Point 3: Expected output Expected output第 3 点:预期 output预期 output

I figured it out.我想到了。 Maybe someone will use it.也许有人会使用它。

1.Server code 1.服务器代码

from flask import Flask, render_template, request
import random


app = Flask (__name__)
randing = []

@app.route('/')
def random_numbers_range():
    global randing
    randing = []
    random_number = random.randrange(2, 8)
    for i in range(2,random_number):
        randing.append(i)
    
    list_numbers = []
    for i in range (2, random_number):
        list_numbers.append(i)
    return render_template('list.html', list_numbers = list_numbers)


@app.route('/add_submit')
def add_submit():
    global username_from_form
    username_from_form = {}
    for i in range (0, max(randing)+1):
        if request.args.get(str (i)) == None:
            continue
        else:
            username_from_form[i] = request.args.get(str (i))
    return "Good job"

if __name__ == "__main__":
    app.run(debug = False, port = 1234)

2.Template: 2.模板:

<!doctype html>
<title>Dodawanie nazwy liczby</title>
<form action='/add_submit' method="GET">
  {% for i in list_numbers %}
    <li>Number: <b>{{i}}</b></li>
        <div><label>Name it: <input type="text" name={{i}}></label></div>        
  {% endfor %}
  <a href='/add_submit'><button>Submit</button></a>
</form>
  </ol>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM