|
|
| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>Flask Web App</title> |
| <style> |
| body { |
| font-family: Arial, sans-serif; |
| max-width: 800px; |
| margin: 0 auto; |
| padding: 20px; |
| line-height: 1.6; |
| } |
| .container { |
| border: 1px solid #ddd; |
| border-radius: 5px; |
| padding: 20px; |
| margin-top: 20px; |
| } |
| button { |
| background-color: #4CAF50; |
| color: white; |
| padding: 10px 15px; |
| border: none; |
| border-radius: 4px; |
| cursor: pointer; |
| margin-right: 10px; |
| } |
| button:hover { |
| background-color: #45a049; |
| } |
| pre { |
| background-color: #f5f5f5; |
| padding: 10px; |
| border-radius: 4px; |
| overflow-x: auto; |
| } |
| </style> |
| </head> |
| <body> |
| <h1>Welcome to Flask Web App</h1> |
| <p>The current server time is: {{ current_time }}</p> |
| |
| <div class="container"> |
| <h2>API Demo</h2> |
| <button id="getTimeBtn">Get Current Time</button> |
| <button id="sendEchoBtn">Send Echo Request</button> |
| <div id="result"> |
| <pre id="output">Results will appear here...</pre> |
| </div> |
| </div> |
|
|
| <script> |
| document.getElementById('getTimeBtn').addEventListener('click', async () => { |
| try { |
| const response = await fetch('/api/time'); |
| const data = await response.json(); |
| document.getElementById('output').textContent = JSON.stringify(data, null, 2); |
| } catch (error) { |
| document.getElementById('output').textContent = 'Error: ' + error.message; |
| } |
| }); |
| |
| document.getElementById('sendEchoBtn').addEventListener('click', async () => { |
| try { |
| const testData = { |
| message: "Hello from the client!", |
| timestamp: new Date().toISOString() |
| }; |
| |
| const response = await fetch('/api/echo', { |
| method: 'POST', |
| headers: { |
| 'Content-Type': 'application/json' |
| }, |
| body: JSON.stringify(testData) |
| }); |
| |
| const data = await response.json(); |
| document.getElementById('output').textContent = JSON.stringify(data, null, 2); |
| } catch (error) { |
| document.getElementById('output').textContent = 'Error: ' + error.message; |
| } |
| }); |
| </script> |
| </body> |
| </html> |
| |