https://python-guide-es.readthedocs.io/es/guide-es/dev/virtualenvs.html
Create an environment
ednalan@Cairocoders myapp % pip install virtualenv
ednalan@Cairocoders myapp % pip install virtualenv
Activate the environment
ednalan@Cairocoders myapp % source venv/bin/activate
(venv) ednalan@Cairocoders myapp %
Install Flask
https://pypi.org/project/Flask/
(venv) ednalan@Cairocoders myapp % pip install -U Flask
(venv) ednalan@Cairocoders myapp % flask run
Install requirements
pip install -U flask-cors
https://pypi.org/project/Flask-Cors/
Flask-SQLAlchemy
Flask-SQLAlchemy is an extension for Flask that adds support for SQLAlchemy to your application.
https://flask-sqlalchemy.palletsprojects.com/en/3.0.x/
(venv) PS C:\flask_dev\myapp>pip install -U Flask-SQLAlchemy
Flask + marshmallow for beautiful APIs
https://pypi.org/project/flask-marshmallow/
(venv) PS C:\flask_dev\myapp>pip install flask-marshmallow
python3 -m pip install
https://pypi.org/project/pymysql/
app.py
//app.py from flask import Flask, jsonify, request from flask_marshmallow import Marshmallow #ModuleNotFoundError: No module named 'flask_marshmallow' = pip install flask-marshmallow from flask_cors import CORS, cross_origin #ModuleNotFoundError: No module named 'flask_cors' = pip install Flask-Cors from models import db, Users app = Flask(__name__) app.config['SECRET_KEY'] = 'cairocoders-ednalan' #app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///flaskdb.db' # Databse configuration mysql Username:password@hostname/databasename app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:root@localhost:8889/flasknextjs' #python3 -m pip install PyMySQL https://pypi.org/project/pymysql/ SQLALCHEMY_TRACK_MODIFICATIONS = False SQLALCHEMY_ECHO = True CORS(app, supports_credentials=True) db.init_app(app) with app.app_context(): db.create_all() ma=Marshmallow(app) class UserSchema(ma.Schema): class Meta: fields = ('id','name','email','password') user_schema = UserSchema() users_schema = UserSchema(many=True) @app.route("/") def hello(): return "Hello, World!" @app.route('/users', methods=['GET']) def listusers(): all_users = Users.query.all() results = users_schema.dump(all_users) return jsonify(results) if __name__ == "__main__": app.run(debug=True)models.py
//models.py from flask_sqlalchemy import SQLAlchemy #pip install -U Flask-SQLAlchemy db = SQLAlchemy() class Users(db.Model): __tablename__ = "tblusers" id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(150), index=True, unique=True) email = db.Column(db.String(150), index=True, unique=True) password = db.Column(db.String(255), index=True, unique=True)run (venv) C:\flask_dev\myapp>flask run
Next.js Install requirements
npm install axios
https://www.npmjs.com/package/axios
app\page.tsx
//app\page.tsx "use client"; import React, { useEffect, useState } from "react"; import axios from 'axios' //npm install axios https://www.npmjs.com/package/axios import Link from "next/link"; export default function Home() { const [userData, setUSerData] = useState([]); useEffect(() => { fetchData(); }, []) const fetchData = async () => { try { const result = await axios("http://127.0.0.1:5000/users"); console.log(result.data); setUSerData(result.data) } catch (err) { console.log("somthing Wrong"); } } return ( <div className="w-screen py-20 flex justify-center flex-col items-center"> <div className="flex items-center justify-between gap-1 mb-5"> <h1 className="text-4xl font-bold">Next.js 14 Python Flask Mysql List All Data | TailwindCSS DaisyUI</h1> </div> <div className="overflow-x-auto"> <div className="mb-2 w-full text-right"> <Link href="#" className="btn btn-primary"> Create </Link> </div> <table className="table table-zebra"> <thead className="text-sm text-gray-700 uppercase bg-gray-50"> <tr> <th className="py-3 px-6">#</th> <th className="py-3 px-6">Name</th> <th className="py-3 px-6">Email</th> <th className="py-3 px-6">Password</th> <th className="py-3 px-6 text-center">Actions</th> </tr> </thead> <tbody> {userData.map((rs, index) => ( <tr key={rs.id} className="bg-white border-b"> <td className="py-3 px-6">{index + 1}</td> <td className="py-3 px-6">{rs.name}</td> <td className="py-3 px-6">{rs.email}</td> <td className="py-3 px-6">{rs.password}</td> <td className="flex justify-center gap-1 py-3"> <button className="btn btn-active btn-primary">Edit</button> <button className="btn btn-active btn-secondary">Delete</button> </td> </tr> ))} </tbody> </table> </div> </div> ); }run C:\nextjs>npm run dev
Github - Next.js 14 Python Flask Mysql List All Data | TailwindCSS DaisyUI