
- html>
- <html lang="en">
- <head>
-
- <link rel="stylesheet" href="static/bootstrap-5.0.0-beta1-dist/css/bootstrap.min.css">
-
- <script src="static/bootstrap-5.0.0-beta1-dist/js/bootstrap.bundle.min.js">script>
-
- <script>
- function submitForm() {
- document.getElementById('myForm').submit();
- }
-
- function clearTextarea() {
- var textarea = document.getElementById('myTextarea');
- textarea.value = ''; // 清空 textarea 的内容
- }
- script>
-
-
-
- <meta charset="UTF-8">
- <title>Titletitle>
-
- <style>
- .form-control.input-lg {
- height: 500px;
- }
- style>
-
-
-
-
- head>
- <body>
-
-
-
- <nav class="navbar navbar-expand-lg navbar-light bg-light navbar-dark bg-dark bg-dark">
- <div class="container-fluid">
-
- <a class="navbar-brand" href="#">
- <img src="static/glyph-iconset-master/svg/si-glyph-desktop.svg" alt="" width="30" height="30" class="d-inline-block align-top">
- 工具大全
- a>
-
-
- <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
- <span class="navbar-toggler-icon">span>
- button>
-
- <div class="collapse navbar-collapse" id="navbarNavDropdown">
-
- <ul class="navbar-nav">
-
- <li class="nav-item">
- <a class="nav-link active" aria-current="page" href="#">首页a>
- li>
-
- <li class="nav-item">
- <a class="nav-link" href="#">test1a>
- li>
-
- <li class="nav-item">
- <a class="nav-link" href="#">test2a>
- li>
-
-
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-bs-toggle="dropdown" aria-expanded="false">
- test3
- a>
-
- <ul class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
- <li><a class="dropdown-item" href="#">1a>li>
- <li><a class="dropdown-item" href="#">2a>li>
- <li><a class="dropdown-item" href="#">3a>li>
- ul>
- li>
-
-
- ul>
-
-
-
- div>
-
-
-
-
-
- <div class="dropdown dropdown-menu-end">
- <button type="button" class="btn btn-primary dropdown-toggle" data-bs-toggle="dropdown">
- 登出
- button>
- <ul class="dropdown-menu">
- <li><a class="dropdown-item" href="#">首页a>li>
- <li><a class="dropdown-item" href="#">注销a>li>
- ul>
- div>
-
-
-
-
- div>
- nav>
-
-
-
- <div class="container">
-
-
- <div class="d-grid gap-2 d-md-block " >
-
- <button onclick="submitForm()" class="btn btn-primary" type="button" type="Submit">格式化button>
- <button onclick="clearTextarea()" class="btn btn-primary" type="button">清空输出框内容button>
-
- div>
-
- <h2>JSON 格式化工具h2>
-
-
-
- <div class="row align-items-start">
- <div class="col-6">
- <h5>输入h5>
-
- <form id="myForm" method="POST">
- <textarea class="form-control" id="deblock_udid" name="textarea_name" rows="30" style="min-width: 50%">{{ textarea_content }}textarea>
- form>
-
- div>
-
- <div class="col-6">
- <h5>输出h5>
- <textarea class="form-control" id="myTextarea" name="deblock_udid" rows="30" style="min-width: 50%">{{ processed_data }}textarea>
- div>
-
-
- div>
- div>
-
- <div class="container">
- <div class="alert alert-light" role="alert">
- {% if error_message %}
- <p style="color: red;">Error: {{ error_message }}p>
- {% endif %}
- div>
-
- div>
-
-
-
-
-
-
- body>
- html>
- from flask import Flask, render_template, request
- import json
-
- app = Flask(__name__)
-
-
- @app.route('/', methods=['GET', 'POST'])
- def index():
- if request.method == 'POST':
- textarea_content = request.form.get('textarea_name') # 获取提交的 textarea 内容
-
- print(textarea_content)
-
- parsed_data = None
- error_message = None
- if textarea_content:
- try:
- parsed_data = json.loads(textarea_content)
- except json.decoder.JSONDecodeError as e:
- # 处理非法的 JSON 字符串
- error_message = str('格式非法')
-
- # 格式化输出 JSON 数据
- formatted_data = json.dumps(parsed_data, indent=4, ensure_ascii=False) if parsed_data else ''
-
- return render_template('student.html', textarea_content=textarea_content, processed_data=formatted_data,
- error_message=error_message) # 将内容和错误信息传递回前端页面
- else:
- return render_template('student.html')
-
-
- if __name__ == '__main__':
- app.run()