114 lines
2.2 KiB
Markdown
114 lines
2.2 KiB
Markdown
# Quick Start Guide - Python Backend
|
|
|
|
## Step-by-Step Setup
|
|
|
|
### 1. Install Python
|
|
Make sure you have Python 3.8 or higher installed:
|
|
```bash
|
|
python --version
|
|
```
|
|
|
|
### 2. Create Virtual Environment
|
|
```bash
|
|
cd backend
|
|
python -m venv venv
|
|
```
|
|
|
|
### 3. Activate Virtual Environment
|
|
|
|
**Windows:**
|
|
```powershell
|
|
.\venv\Scripts\Activate.ps1
|
|
```
|
|
|
|
**Linux/Mac:**
|
|
```bash
|
|
source venv/bin/activate
|
|
```
|
|
|
|
### 4. Install Dependencies
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
### 5. Verify Database Connection
|
|
Make sure MySQL is running and the database `myapp` exists:
|
|
```sql
|
|
CREATE DATABASE IF NOT EXISTS myapp;
|
|
```
|
|
|
|
### 6. Run the Server
|
|
```bash
|
|
python start.py
|
|
```
|
|
|
|
Or:
|
|
```bash
|
|
python app.py
|
|
```
|
|
|
|
The server should now be running at `http://0.0.0.0:3000`
|
|
|
|
## Testing the API
|
|
|
|
Test if the server is working:
|
|
```bash
|
|
curl http://localhost:3000/api/training-projects
|
|
```
|
|
|
|
## Common Issues
|
|
|
|
### ModuleNotFoundError
|
|
If you get import errors, make sure you've activated the virtual environment and installed all dependencies.
|
|
|
|
### Database Connection Error
|
|
Check that:
|
|
- MySQL is running
|
|
- Database credentials in `app.py` are correct
|
|
- Database `myapp` exists
|
|
|
|
### Port Already in Use
|
|
If port 3000 is already in use, modify the port in `app.py`:
|
|
```python
|
|
app.run(host='0.0.0.0', port=3001, debug=True)
|
|
```
|
|
|
|
## What Changed from Node.js
|
|
|
|
1. **Server Framework**: Express.js → Flask
|
|
2. **ORM**: Sequelize → SQLAlchemy
|
|
3. **HTTP Client**: node-fetch → requests
|
|
4. **Package Manager**: npm → pip
|
|
5. **Dependencies**: package.json → requirements.txt
|
|
6. **Startup**: `node server.js` → `python app.py`
|
|
|
|
## Next Steps
|
|
|
|
1. Test all API endpoints
|
|
2. Update frontend to point to the new Python backend (if needed)
|
|
3. Migrate any remaining Node.js-specific logic
|
|
4. Test file uploads and downloads
|
|
5. Test YOLOX training functionality
|
|
|
|
## File Structure Comparison
|
|
|
|
**Before (Node.js):**
|
|
```
|
|
backend/
|
|
├── server.js
|
|
├── package.json
|
|
├── routes/api.js
|
|
├── models/*.js
|
|
└── services/*.js
|
|
```
|
|
|
|
**After (Python):**
|
|
```
|
|
backend/
|
|
├── app.py
|
|
├── requirements.txt
|
|
├── routes/api.py
|
|
├── models/*.py
|
|
└── services/*.py
|
|
```
|