Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to run cloned Django project?

I am a junior software engineer and am quite new to Django. I built this app and am working on a README to explain to others how to fork, clone and setup the app on their own machines. I've gotten stuck while trying to re-create the steps.

This is the order in which I've drawn up the steps:

  1. Fork and clone the repo
  2. Source a virtual environment
  3. Pip install requirements.txt
  4. Obtain access_token and secret_key and store in secrets.sh
  5. Setup a Postgres DB, create user & database
  6. Migrate (?) - This is where I get stuck!

I tried migrating the app but there are no migrations to apply.

I tried django-admin startproject ig_miner_app . but am getting this error code:

CommandError: /Users/Erin/Desktop/CodeByEAllard/project/instagram_miner/manage.py already exists, overlaying a project or app into an existing directory won't replace conflicting files

If I can get this sorted out, I should just be able to run the server like normal, right?

I'm sure I'm missing something (or many things) but don't know what they are. I feel silly because I was obviously able to create the app in the first place, but can't figure out how to explain to someone else to do the same! Does any have suggestions for how to get the server to run?

Thank you!

like image 378
allardbrain Avatar asked May 07 '16 21:05

allardbrain


People also ask

How do I run an already created Django project?

Simply navigate to the folder containing the app you want to manage using the command prompt. The first cd should contain your parent folder. The second cd should contain the folder that has your current project. The third cd should be the specific app you want to work on.


2 Answers

First off, you are getting that error because you are starting a project within the same directory as the cloned project, this directory already contains an app with the name ig_miner_app hence the name conflict.

As regards steps to running the project by other users , this should work.

clone the project

git clone https://github.com/erinallard/instagram_miner.git 

create and start a a virtual environment

virtualenv env --no-site-packages

source env/bin/activate

Install the project dependencies:

pip install -r requirements.txt

create a file named "secrets.sh"

touch secrets.sh (mac and linux)

obtain a secret from MiniWebTool key and add to secrets.sh

export SECRET_KEY='<secret_key>'

add secrets.sh to .gitignore file

create a postgres db and add the credentials to settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'db_name',
        'USER': 'name',
        'PASSWORD': '',
        'HOST': 'localhost',
        'PORT': '',
    }
}

then run

python manage.py migrate

create admin account

python manage.py createsuperuser

then

python manage.py makemigrations ig_miner_app

to makemigrations for the app

then again run

python manage.py migrate

to start the development server

python manage.py runserver

and open localhost:8000 on your browser to view the app.

I believe this should get the app up and running on others' machines. Let me know if you get stuck on any of these steps so I make edits, if not, you can just use it and add any other relevant info I might not have added.

like image 96
Bernard 'Beta Berlin' Parah Avatar answered Oct 18 '22 18:10

Bernard 'Beta Berlin' Parah


While my hope is that this issue has been resolved by now, if I may, let's revisit something real quick-- I'm sure others have made and, are currently making this mistake.

I tried 'django-admin startproject ig_miner_app . but am getting this error code: "CommandError: " yadda yadda yadda ...

Django actually has amazing documentation. The guys behind it were writers and journalists and not your typical CS guys.

When learning something new, read the documentation. Run through the to-do app tutorial. Here's why:

django-admin startproject

This has already been satisfied if you are pulling a working copy of a pre-existing Application. Your concern should be with this file first and foremost: requirements.txt. This is where the devDependencies state their demands, if you will, similar to package.json.

like image 30
Abraxas Avatar answered Oct 18 '22 18:10

Abraxas