Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import subprocess
- import sys
- import shutil
- def run_command(command):
- """Runs a shell command and prints the output."""
- process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
- for line in process.stdout:
- print(line)
- process.wait()
- if process.returncode != 0:
- error_output = process.stderr.read()
- print(f"\n[-] Error while running: {command}\n{error_output}")
- sys.exit(1)
- def check_pipenv():
- """Ensures pipenv is installed."""
- print("[+] Checking if pipenv is installed...")
- if not shutil.which("pipenv"):
- print("pipenv not found. Installing it now...")
- run_command("pip install --user pipenv")
- else:
- print(shutil.which("pipenv"))
- def get_command_prefix():
- """Returns the command prefix for pipenv based on OS."""
- if os.name == "nt": # if OS is Windows
- return "python -m pipenv"
- return "pipenv" # if OS is Linux/macOS
- def create_django_project(base_dir, project_name):
- """Automates Django project creation using pipenv."""
- check_pipenv()
- cmd_prefix = get_command_prefix()
- # Define project path and create project directory
- project_path = os.path.join(base_dir, project_name)
- os.makedirs(project_path, exist_ok=True)
- os.chdir(project_path)
- # Set up a pipenv environment and install Django
- print("[+] Setting up virtual environment with pipenv...")
- # run_command("python -m pipenv install django")
- run_command(f"{cmd_prefix} install django")
- # Create Django project inside the project directory
- print("[+] Creating Django project...")
- # run_command(f"python -m pipenv run django-admin startproject {project_name} .")
- run_command(f"{cmd_prefix} run django-admin startproject {project_name} .")
- # Prompt user to create an application
- create_app = input("\nDo you want to create a Django app? (yes/no): ").strip().lower()
- if create_app.lower() in ["yes", "y"]:
- app_name = input("Enter your Django app name: ").strip()
- if app_name:
- run_command(f"{cmd_prefix} run django-admin startapp {app_name}")
- print(f"\n[+] Django app '{app_name}' created successfully!")
- else:
- print("[-] App name cannot be empty. Skipping app creation.")
- print(f"\n[+] Django project '{project_name}' created successfully at {project_path}!")
- print("To start development:\n")
- print(f" cd {project_name}")
- print(f" {cmd_prefix} shell # Activate environment")
- print(" python manage.py runserver # Start Django server")
- if __name__ == "__main__":
- base_directory = os.getcwd()
- project_name = input("Enter your Django project name: ").strip()
- if not project_name:
- print("[-] Project name cannot be empty.")
- sys.exit(1)
- create_django_project(base_directory, project_name)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement