Hướng dẫn flask get data from html table - bình lấy dữ liệu từ bảng html

Tôi đang phát triển một mặt trước web đơn giản với bình, hiển thị một bảng từ cơ sở dữ liệu và khi người dùng chọn một hàng cụ thể, bình có thông tin của một cột cụ thể của hàng đã chọn.

Với các mã sau, tôi hiển thị một bảng với 5 cột dữ liệu và một cột cuối cùng của nút 'Gửi'. Khi nút 'gửi' của hàng cụ thể, thông tin cột thứ hai ('Tiêu đề') được cho là sẽ được đăng lại vào ứng dụng Flask.5 columns of data and one last column of 'submit' button. When the 'submit' button of the specific row, the second column ('Title') information is supposed to be posted back to Flask app.

Nó hoạt động 90%, vì khi nút được nhấp, luôn luôn là thông tin hàng đầu tiên được đăng, ngay cả khi một hàng khác được chọn. Bất cứ ai có thể hình dung những gì đã xảy ra ở đây?first row information is posted, even if a different row is selected. Could anyone figure what went wrong here?

Thanks!

Đây là mã bình

@app.route("/", methods=["GET", "POST"])
def home():
    df = pd.read_excel('database.xlsx')
    this_list = df.values.tolist()
    if request.method =="POST":
        if request.form.get('select_song') == 'select':
            print('selected')
            print(request.form.get("title"))
    return render_template('basic_table.html', title='Basic Table',
                           table=this_list)

Đây là một cơ bản

{% for row in table %} {% endfor %}
Type Title Location Translation Content selection
{{ row[0] }} {{ row[1] }} {{ row[2] }} {{ row[3] }} {{ row[4] }}
{% endblock %}

Hướng dẫn flask get data from html table - bình lấy dữ liệu từ bảng html
Njoku Ifeanyi Gerald

Tổng quan

Bình là một khung được sử dụng rộng rãi để tạo API trong Python. Nó là một khung web đơn giản nhưng mạnh mẽ. Flask được thiết kế để giúp chúng tôi làm việc hiệu quả với khả năng mở rộng quy mô đến các ứng dụng phức tạp. is a framework that is widely used to create APIs in Python. It is a simple yet powerful web framework. Flask is designed to help us work efficiently with its ability to scale up to complex applications.

Trong ảnh này, chúng tôi tìm hiểu cách lấy dữ liệu HTML từ ứng dụng bình.

Cài đặt phụ thuộc

Đầu tiên, chúng ta cần chạy các lệnh bên dưới để cài đặt các phụ thuộc cần thiết:

pip install pipenv 
pipenv shell 
pipenv install Flask

Hãy để tạo một tệp và đặt tên cho nó app.py.app.py.

Chúng tôi nhận được HTML input từ

{% for row in table %} {% endfor %}
Type Title Location Translation Content selection
{{ row[0] }} {{ row[1] }} {{ row[2] }} {{ row[3] }} {{ row[4] }}
{% endblock %}
0 bằng hàm
{% for row in table %} {% endfor %}
Type Title Location Translation Content selection
{{ row[0] }} {{ row[1] }} {{ row[2] }} {{ row[3] }} {{ row[4] }}
{% endblock %}
1. Chúng tôi vượt qua tên của đầu vào HTML như một đối số.
{% for row in table %} {% endfor %}
Type Title Location Translation Content selection
{{ row[0] }} {{ row[1] }} {{ row[2] }} {{ row[3] }} {{ row[4] }}
{% endblock %}
1
function. We pass the name of HTML input as an argument.

Hãy nhìn vào một ví dụ:

k38 = request.form.get('kubernetes')
ansible = request.form.get('playbook')

Trong mã trên:

  • {% for row in table %} {% endfor %}
    Type Title Location Translation Content selection
    {{ row[0] }} {{ row[1] }} {{ row[2] }} {{ row[3] }} {{ row[4] }}
    {% endblock %}
    2 lấy đầu vào làm tham số của nó. Trong trường hợp này, đầu vào là
    {% for row in table %} {% endfor %}
    Type Title Location Translation Content selection
    {{ row[0] }} {{ row[1] }} {{ row[2] }} {{ row[3] }} {{ row[4] }}
    {% endblock %}
    3 và được lưu trữ trong biến
    {% for row in table %} {% endfor %}
    Type Title Location Translation Content selection
    {{ row[0] }} {{ row[1] }} {{ row[2] }} {{ row[3] }} {{ row[4] }}
    {% endblock %}
    4.
  • {% for row in table %} {% endfor %}
    Type Title Location Translation Content selection
    {{ row[0] }} {{ row[1] }} {{ row[2] }} {{ row[3] }} {{ row[4] }}
    {% endblock %}
    5TAKE đầu vào dưới dạng tham số của nó. Trong trường hợp này, đầu vào là
    {% for row in table %} {% endfor %}
    Type Title Location Translation Content selection
    {{ row[0] }} {{ row[1] }} {{ row[2] }} {{ row[3] }} {{ row[4] }}
    {% endblock %}
    6 và được lưu trữ trong biến
    {% for row in table %} {% endfor %}
    Type Title Location Translation Content selection
    {{ row[0] }} {{ row[1] }} {{ row[2] }} {{ row[3] }} {{ row[4] }}
    {% endblock %}
    7.

Mã ví dụ

from flask import Flask, request, render_template

app = Flask(__name__)

# Creating a route that has both GET and POST request methods

@app.route('/', methods=['GET', 'POST'])

def home():

if request.method == 'POST':

name = request.form.get('name')

username = request.form.get('username')

return f'{name}, your username is {username}'

return render_template('home.html')

# Initiating the application

if __name__ == '__main__':

# Running the application and leaving the debug mode ON

app.run(debug=True)

app.py

Giải trình

  • Chúng tôi tạo một thư mục và đặt tên cho nó

    {% for row in table %} {% endfor %}
    Type Title Location Translation Content selection
    {{ row[0] }} {{ row[1] }} {{ row[2] }} {{ row[3] }} {{ row[4] }}
    {% endblock %}
    8.
    {% for row in table %} {% endfor %}
    Type Title Location Translation Content selection
    {{ row[0] }} {{ row[1] }} {{ row[2] }} {{ row[3] }} {{ row[4] }}
    {% endblock %}
    8
    .

  • Bên trong thư mục

    {% for row in table %} {% endfor %}
    Type Title Location Translation Content selection
    {{ row[0] }} {{ row[1] }} {{ row[2] }} {{ row[3] }} {{ row[4] }}
    {% endblock %}
    8, chúng tôi tạo một tệp và đặt tên cho nó
    pip install pipenv 
    pipenv shell 
    pipenv install Flask
    
    0. Sau đó, chúng tôi thêm mã sau.
    pip install pipenv 
    pipenv shell 
    pipenv install Flask
    
    0
    . Then, we add the following code.

Document

home.html

Trong thiết bị đầu cuối của chúng tôi, chúng tôi chạy lệnh sau để bắt đầu ứng dụng web:

python app.py

click==8.0.3
colorama==0.4.4
Flask==2.0.2
itsdangerous==2.0.1
Jinja2==3.0.3
MarkupSafe==2.0.1
Werkzeug==2.0.2

THẺ LIÊN QUAN

Python

cộng đồng

bình giữ nhiệt

HTML

Người đóng góp

Hướng dẫn flask get data from html table - bình lấy dữ liệu từ bảng html
Njoku Ifeanyi Gerald

Làm thế nào để bạn chuyển một giá trị từ HTML sang bình Python?

Cách truyền các biến từ bình python hình thức HTML..
từ yêu cầu nhập khẩu bình ..
@ứng dụng. tuyến đường ('/py', phương thức = ['get', 'post']).
DEF Server ():.
Nếu yêu cầu. Phương thức == 'Bài đăng':.
# Sau đó lấy dữ liệu từ biểu mẫu ..
Tag = Yêu cầu. biểu mẫu ['tag'].

Làm cách nào để nhận dữ liệu biểu mẫu HTML trong Python?

Để đăng dữ liệu biểu mẫu HTML lên máy chủ ở định dạng được mã hóa URL bằng Python, bạn cần thực hiện yêu cầu POST HTTP cho máy chủ và cung cấp dữ liệu biểu mẫu HTML trong phần thân của thông báo Python Post.Bạn cũng cần chỉ định kiểu dữ liệu bằng cách sử dụng tiêu đề yêu cầu loại nội dung: Ứng dụng/X-www-form-urlencoded.make an HTTP POST request to the server and provide the HTML form data in the body of the Python POST message. You also need to specify the data type using the Content-Type: application/x-www-form-urlencoded request header.

Làm cách nào để kết nối bình với HTML?

Kết xuất tệp HTML trong bình..
Đầu tiên, tạo một thư mục mới trong thư mục dự án có tên là Mẫu.Tạo một tệp mới trong thư mục mẫu đặt tên nhà.HTML.Sao chép/Dán mã đơn giản này.....
Bây giờ hãy mở App.py và thêm mã sau.Từ bình Nhập bình, Render_Template.Ứng dụng = Flask (__ name__) @App ..

Làm thế nào để bạn hiển thị đầu ra Python trên trang HTML bình?

Tạo một trang HTML đơn giản để hiển thị văn bản.Tạo một tuyến đường và/và trở về nhà.html từ chức năng. Sau đó, hãy chạy tệp api.py của bạn và nhấp vào liên kết mà nó cung cấp sau khi chạy.create a route ”/” and return home. html from the function. Then run your api.py file and click on the link that it provides after running.