gener una pagina nueva con accsoa base detos
Aquí te muestro un ejemplo básico de una página web con acceso a base de datos utilizando Python y el framework Flask.
**Requisitos previos**
* Instalar Flask: `pip install flask`
* Instalar Flask-SQLAlchemy: `pip install flask-sqlalchemy`
* Instalar SQLite (o cualquier otro motor de base de datos que desees utilizar)
**Estructura del proyecto**
* `app.py`: archivo principal de la aplicación
* `models.py`: archivo que define las entidades de la base de datos
* `templates`: carpeta que contiene los archivos HTML de la aplicación
* `static`: carpeta que contiene los archivos estáticos de la aplicación (CSS, JavaScript, imágenes, etc.)
**app.py**
```python
from flask import Flask, render_template, request, redirect, url_for
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///mi_base_de_datos.db'
db = SQLAlchemy(app)
from models import User
@app.route('/')
def index():
users = User.query.all()
return render_template('index.html', users=users)
@app.route('/crear_usuario', methods=['GET', 'POST'])
def crear_usuario():
if request.method == 'POST':
nombre = request.form['nombre']
email = request.form['email']
user = User(nombre=nombre, email=email)
db.session.add(user)
db.session.commit()
return redirect(url_for('index'))
return render_template('crear_usuario.html')
@app.route('/eliminar_usuario/<int:id>')
def eliminar_usuario(id):
user = User.query.get(id)
if user:
db.session.delete(user)
db.session.commit()
return redirect(url_for('index'))
if __name__ == '__main__':
app.run(debug=True)
```
**models.py**
```python
from app import db
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
nombre = db.Column(db.String(100), nullable=False)
email = db.Column(db.String(100), nullable=False, unique=True)
def __repr__(self):
return f'User({self.nombre}, {self.email})'
```
**templates/index.html**
```html
<!DOCTYPE html>
<html>
<head>
<title>Usuarios</title>
</head>
<body>
<h1>Usuarios</h1>
<ul>
{% for user in users %}
<li>{{ user.nombre }} ({{ user.email }})</li>
{% endfor %}
</ul>
<p><a href="{{ url_for('crear_usuario') }}">Crear usuario</a></p>
</body>
</html>
```
**templates/crear_usuario.html**
```html
<!DOCTYPE html>
<html>
<head>
<title>Crear usuario</title>
</head>
<body>
<h1>Crear usuario</h1>
<form method="POST">
<label for="nombre">Nombre:</label>
<input type="text" id="nombre" name="nombre"><br><br>
<label for="email">Email:</label>
<input type="email" id="email" name="email"><br><br>
<input type="submit" value="Crear usuario">
</form>
</body>
</html>
```
**static/css/style.css** (opcional)
```css
body {
font-family: Arial, sans-serif;
}
h1 {
color: #00698f;
}
ul {
list-style: none;
padding: 0;
margin: 0;
}
li {
padding: 10px;
border-bottom: 1px solid #ccc;
}
li:last-child {
border-bottom: none;
}
a {
text-decoration: none;
color: #00698f;
}
a:hover {
color: #004d5b;
}
```
**static/js/script.js** (opcional)
```javascript
// Agregar eventos de JavaScript aquí
```
**Ejecutar la aplicación**
1. Abrir un terminal y navegar hasta la carpeta del proyecto.
2. Ejecutar `python app.py` para iniciar la aplicación.
3. Abrir un navegador y acceder a `http://localhost:5000` para ver la página de inicio.
Recuerda que esta es una implementación básica y puedes agregar más funcionalidades y características según tus necesidades.