• flask bootstrap页面json格式化


    html

    1. html>
    2. <html lang="en">
    3. <head>
    4. <link rel="stylesheet" href="static/bootstrap-5.0.0-beta1-dist/css/bootstrap.min.css">
    5. <script src="static/bootstrap-5.0.0-beta1-dist/js/bootstrap.bundle.min.js">script>
    6. <script>
    7. function submitForm() {
    8. document.getElementById('myForm').submit();
    9. }
    10. function clearTextarea() {
    11. var textarea = document.getElementById('myTextarea');
    12. textarea.value = ''; // 清空 textarea 的内容
    13. }
    14. script>
    15. <meta charset="UTF-8">
    16. <title>Titletitle>
    17. <style>
    18. .form-control.input-lg {
    19. height: 500px;
    20. }
    21. style>
    22. head>
    23. <body>
    24. <nav class="navbar navbar-expand-lg navbar-light bg-light navbar-dark bg-dark bg-dark">
    25. <div class="container-fluid">
    26. <a class="navbar-brand" href="#">
    27. <img src="static/glyph-iconset-master/svg/si-glyph-desktop.svg" alt="" width="30" height="30" class="d-inline-block align-top">
    28. 工具大全
    29. a>
    30. <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
    31. <span class="navbar-toggler-icon">span>
    32. button>
    33. <div class="collapse navbar-collapse" id="navbarNavDropdown">
    34. <ul class="navbar-nav">
    35. <li class="nav-item">
    36. <a class="nav-link active" aria-current="page" href="#">首页a>
    37. li>
    38. <li class="nav-item">
    39. <a class="nav-link" href="#">test1a>
    40. li>
    41. <li class="nav-item">
    42. <a class="nav-link" href="#">test2a>
    43. li>
    44. <li class="nav-item dropdown">
    45. <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-bs-toggle="dropdown" aria-expanded="false">
    46. test3
    47. a>
    48. <ul class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
    49. <li><a class="dropdown-item" href="#">1a>li>
    50. <li><a class="dropdown-item" href="#">2a>li>
    51. <li><a class="dropdown-item" href="#">3a>li>
    52. ul>
    53. li>
    54. ul>
    55. div>
    56. <div class="dropdown dropdown-menu-end">
    57. <button type="button" class="btn btn-primary dropdown-toggle" data-bs-toggle="dropdown">
    58. 登出
    59. button>
    60. <ul class="dropdown-menu">
    61. <li><a class="dropdown-item" href="#">首页a>li>
    62. <li><a class="dropdown-item" href="#">注销a>li>
    63. ul>
    64. div>
    65. div>
    66. nav>
    67. <div class="container">
    68. <div class="d-grid gap-2 d-md-block " >
    69. <button onclick="submitForm()" class="btn btn-primary" type="button" type="Submit">格式化button>
    70. <button onclick="clearTextarea()" class="btn btn-primary" type="button">清空输出框内容button>
    71. div>
    72. <h2>JSON 格式化工具h2>
    73. <div class="row align-items-start">
    74. <div class="col-6">
    75. <h5>输入h5>
    76. <form id="myForm" method="POST">
    77. <textarea class="form-control" id="deblock_udid" name="textarea_name" rows="30" style="min-width: 50%">{{ textarea_content }}textarea>
    78. form>
    79. div>
    80. <div class="col-6">
    81. <h5>输出h5>
    82. <textarea class="form-control" id="myTextarea" name="deblock_udid" rows="30" style="min-width: 50%">{{ processed_data }}textarea>
    83. div>
    84. div>
    85. div>
    86. <div class="container">
    87. <div class="alert alert-light" role="alert">
    88. {% if error_message %}
    89. <p style="color: red;">Error: {{ error_message }}p>
    90. {% endif %}
    91. div>
    92. div>
    93. body>
    94. html>

    app.py

    1. from flask import Flask, render_template, request
    2. import json
    3. app = Flask(__name__)
    4. @app.route('/', methods=['GET', 'POST'])
    5. def index():
    6. if request.method == 'POST':
    7. textarea_content = request.form.get('textarea_name') # 获取提交的 textarea 内容
    8. print(textarea_content)
    9. parsed_data = None
    10. error_message = None
    11. if textarea_content:
    12. try:
    13. parsed_data = json.loads(textarea_content)
    14. except json.decoder.JSONDecodeError as e:
    15. # 处理非法的 JSON 字符串
    16. error_message = str('格式非法')
    17. # 格式化输出 JSON 数据
    18. formatted_data = json.dumps(parsed_data, indent=4, ensure_ascii=False) if parsed_data else ''
    19. return render_template('student.html', textarea_content=textarea_content, processed_data=formatted_data,
    20. error_message=error_message) # 将内容和错误信息传递回前端页面
    21. else:
    22. return render_template('student.html')
    23. if __name__ == '__main__':
    24. app.run()

  • 相关阅读:
    hadoop
    没域名也可以frp实现内网穿透 SSH,个人搭建内网穿透 7月6日
    Python PDF转化wolrd代码怎么写
    【Java 进阶篇】JDBC DriverManager 详解
    Educational Codeforces Round 134 (Rated for Div. 2)
    vue2使用 relation-graph 展示关系图谱
    未来已来:探索5G技术如何改变我们的生活和工作
    【nlp】2.3 LSTM模型
    【Oculus Interaction SDK】(十)在 VR 中使用手势识别
    Deno vs. Bun vs. Node.js功能比较
  • 原文地址:https://blog.csdn.net/qq_26086231/article/details/132764068