....
This commit is contained in:
62
actix_mvc_app/src/views/about.html
Normal file
62
actix_mvc_app/src/views/about.html
Normal file
@@ -0,0 +1,62 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}About - Actix MVC App{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h1 class="card-title">About Actix MVC App</h1>
|
||||
<p class="card-text">This is a sample application demonstrating how to build a web application using Rust with an MVC architecture.</p>
|
||||
|
||||
<h2 class="mt-4">Technology Stack</h2>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="card mb-3">
|
||||
<div class="card-header">Backend</div>
|
||||
<ul class="list-group list-group-flush">
|
||||
<li class="list-group-item">
|
||||
<strong>Actix Web</strong> - A powerful, pragmatic, and extremely fast web framework for Rust
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<strong>Tera</strong> - A template engine inspired by Jinja2 and Django templates
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<strong>Serde</strong> - A framework for serializing and deserializing Rust data structures
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="card mb-3">
|
||||
<div class="card-header">Frontend</div>
|
||||
<ul class="list-group list-group-flush">
|
||||
<li class="list-group-item">
|
||||
<strong>Bootstrap 5.3.5</strong> - A popular CSS framework for responsive web design
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<strong>HTML5</strong> - The latest version of the HTML standard
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<strong>CSS3</strong> - The latest evolution of the Cascading Style Sheets language
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2 class="mt-4">MVC Architecture</h2>
|
||||
<p>This application follows the Model-View-Controller (MVC) architectural pattern:</p>
|
||||
<ul>
|
||||
<li><strong>Model:</strong> Represents the data and business logic of the application</li>
|
||||
<li><strong>View:</strong> Represents the UI of the application (Tera templates)</li>
|
||||
<li><strong>Controller:</strong> Handles the user request, works with the Model, and selects a View to render</li>
|
||||
</ul>
|
||||
|
||||
<a href="/contact" class="btn btn-primary mt-3">Contact Us</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
54
actix_mvc_app/src/views/base.html
Normal file
54
actix_mvc_app/src/views/base.html
Normal file
@@ -0,0 +1,54 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{% block title %}Actix MVC App{% endblock %}</title>
|
||||
<link rel="stylesheet" href="/static/css/bootstrap.min.css">
|
||||
{% block extra_css %}{% endblock %}
|
||||
</head>
|
||||
<body>
|
||||
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
|
||||
<div class="container">
|
||||
<a class="navbar-brand" href="/">Actix MVC App</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarNav">
|
||||
<ul class="navbar-nav ms-auto">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link {% if active_page == 'home' %}active{% endif %}" href="/">Home</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link {% if active_page == 'about' %}active{% endif %}" href="/about">About</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link {% if active_page == 'contact' %}active{% endif %}" href="/contact">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<main class="container py-4">
|
||||
{% block content %}{% endblock %}
|
||||
</main>
|
||||
|
||||
<footer class="bg-dark text-white py-4 mt-5">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h5>Actix MVC App</h5>
|
||||
<p>A Rust web application using Actix Web, Tera templates, and Bootstrap.</p>
|
||||
</div>
|
||||
<div class="col-md-6 text-md-end">
|
||||
<p>© {{ now(year=true) }} Actix MVC App. All rights reserved.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/static/js/bootstrap.bundle.min.js"></script>
|
||||
{% block extra_js %}{% endblock %}
|
||||
</body>
|
||||
</html>
|
68
actix_mvc_app/src/views/contact.html
Normal file
68
actix_mvc_app/src/views/contact.html
Normal file
@@ -0,0 +1,68 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}Contact - Actix MVC App{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<div class="col-md-8 offset-md-2">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h1 class="card-title">Contact Us</h1>
|
||||
<p class="card-text">Have questions or feedback? Feel free to reach out to us using the form below.</p>
|
||||
|
||||
<form id="contactForm" class="mt-4">
|
||||
<div class="mb-3">
|
||||
<label for="name" class="form-label">Name</label>
|
||||
<input type="text" class="form-control" id="name" name="name" required>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label for="email" class="form-label">Email</label>
|
||||
<input type="email" class="form-control" id="email" name="email" required>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label for="subject" class="form-label">Subject</label>
|
||||
<input type="text" class="form-control" id="subject" name="subject" required>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label for="message" class="form-label">Message</label>
|
||||
<textarea class="form-control" id="message" name="message" rows="5" required></textarea>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">Submit</button>
|
||||
</form>
|
||||
|
||||
<div class="mt-5">
|
||||
<h3>Other Ways to Connect</h3>
|
||||
<div class="row mt-3">
|
||||
<div class="col-md-6">
|
||||
<div class="card mb-3">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Email</h5>
|
||||
<p class="card-text">info@example.com</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="card mb-3">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">GitHub</h5>
|
||||
<p class="card-text">github.com/example/actix-mvc-app</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% block extra_js %}
|
||||
<script>
|
||||
document.getElementById('contactForm').addEventListener('submit', function(e) {
|
||||
e.preventDefault();
|
||||
alert('This is a demo form. In a real application, this would submit data to the server.');
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
{% endblock %}
|
55
actix_mvc_app/src/views/index.html
Normal file
55
actix_mvc_app/src/views/index.html
Normal file
@@ -0,0 +1,55 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}Home - Actix MVC App{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h1 class="card-title">Welcome to Actix MVC App</h1>
|
||||
<p class="card-text">This is a Rust web application built with:</p>
|
||||
<ul class="list-group list-group-flush mb-4">
|
||||
<li class="list-group-item">Actix Web - A powerful, pragmatic, and extremely fast web framework for Rust</li>
|
||||
<li class="list-group-item">Tera Templates - A template engine inspired by Jinja2 and Django templates</li>
|
||||
<li class="list-group-item">Bootstrap 5.3.5 - A popular CSS framework for responsive web design</li>
|
||||
</ul>
|
||||
<p>This application follows the MVC (Model-View-Controller) architectural pattern:</p>
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="card mb-3">
|
||||
<div class="card-header bg-primary text-white">
|
||||
Models
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p>Data structures and business logic</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="card mb-3">
|
||||
<div class="card-header bg-success text-white">
|
||||
Views
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p>Tera templates for rendering HTML</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="card mb-3">
|
||||
<div class="card-header bg-info text-white">
|
||||
Controllers
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p>Request handlers and application logic</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a href="/about" class="btn btn-primary">Learn More</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
Reference in New Issue
Block a user