Differences between revisions 1 and 3 (spanning 2 versions)
Revision 1 as of 2012-07-06 18:28:00
Size: 25
Editor: AlexPico
Comment:
Revision 3 as of 2012-07-07 20:40:46
Size: 3260
Editor: server2
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Describe AppStore here. = App Store Code Structure =

== Terminology ==

 * ''Django app'': Django organizes websites into separate modules called apps. Each app has its own directory at the top level typically containing files like {{{__init__.py}}}, {{{model.py}}}, and {{{views.py}}}.
 * ''templates'': HTML files with placeholders, which Django processes by filling in Python code.
 * ''static files'': general website files (images, Java Script, CSS) that are served as is without any processing from Django.
 * ''media files'': general website files referenced by the database backend.

== Explanation of important files ==

 * {{{settings.py}}}: Django settings file for configuring things like the database, location of templates, static files, and so on.
 * {{{urls.py}}}: the general URL layout of the entire site. Each URL entry in this file delegates URL paths to each Django app.
 * {{{django.wsgi}}}: the configuration file used when the App Store is deployed to an Apache server using mod_wsgi.
 * {{{apps}}}: navigation of Cytoscape apps and app pages.
 * {{{users}}}: user login/logout.
 * {{{search}}}: free text searching.
 * {{{backend}}}: programs can obtain details of apps from the backend; used by the Cytoscape App Manager
 * {{{help}}}: about, contact us, getting started pages
 * {{{submit_app}}}: Cytoscape 3.0 app submission pages and jar verification
 * {{{templates}}}: Templates in this directory are used throughout the App Store.
 * {{{static}}}: Each subdirectory has static files for a Django app. The {{{common}}} subdirectory has static files that belong to the entire site. When deploying the site to Apache, Apache should directly serve these files instead of through Django.
 * {{{util}}}: small utility functions used throughout the site's code

= Debugging =

 1. {{{/etc/apache2/sites-enabled/appstore}}}
  This file tells Apache and mod_wsgi where to find the site. The most important line is this:
  {{{
WSGIScriptAlias / /var/www/CyAppStore/django.wsgi
}}}
  This tells Apache and mod_wsgi where to locate the site code. Make sure the path to {{{django.wsgi}}} is correct.
 1. {{{/var/www/CyAppStore/django.wsgi}}}
  This file invokes Django's WSGI handler. It needs to correctly reference {{{settings.py}}} to start the site. Make sure these two lines correctly reference the location of the site:
  {{{
SITE_PARENT_DIR = '/var/www'
SITE_DIR = filejoin(SITE_PARENT_DIR, 'CyAppStore')
}}}
  To check if these variables are being defined correctly, you can launch a separate Python interpreter and enter these lines:
  {{{
from os.path import join as filejoin
SITE_PARENT_DIR = '/var/www'
SITE_DIR = filejoin(SITE_PARENT_DIR, 'CyAppStore')
}}}
  Then check if the variables {{{SITE_PARENT_DIR}}} and {{{SITE_DIR}}} are correct.
 1. {{{/var/www/CyAppStore/settings.py}}}
  This file is pretty complicated. But if you've checked everything at this point, here's some ways to pinpoint problems in {{{settings.py}}}.
   a. s
   a. If you're getting database errors, enter this command at the shell prompt in the same directory as {{{settings.py}}}:
   {{{
python manage.py dbshell
}}}
   If you're able to get a SQL prompt, that means the log in settings into the SQL database is correct.

App Store Code Structure

Terminology

  • Django app: Django organizes websites into separate modules called apps. Each app has its own directory at the top level typically containing files like __init__.py, model.py, and views.py.

  • templates: HTML files with placeholders, which Django processes by filling in Python code.

  • static files: general website files (images, Java Script, CSS) that are served as is without any processing from Django.

  • media files: general website files referenced by the database backend.

Explanation of important files

  • settings.py: Django settings file for configuring things like the database, location of templates, static files, and so on.

  • urls.py: the general URL layout of the entire site. Each URL entry in this file delegates URL paths to each Django app.

  • django.wsgi: the configuration file used when the App Store is deployed to an Apache server using mod_wsgi.

  • apps: navigation of Cytoscape apps and app pages.

  • users: user login/logout.

  • search: free text searching.

  • backend: programs can obtain details of apps from the backend; used by the Cytoscape App Manager

  • help: about, contact us, getting started pages

  • submit_app: Cytoscape 3.0 app submission pages and jar verification

  • templates: Templates in this directory are used throughout the App Store.

  • static: Each subdirectory has static files for a Django app. The common subdirectory has static files that belong to the entire site. When deploying the site to Apache, Apache should directly serve these files instead of through Django.

  • util: small utility functions used throughout the site's code

Debugging

  1. /etc/apache2/sites-enabled/appstore

    • This file tells Apache and mod_wsgi where to find the site. The most important line is this:
      WSGIScriptAlias / /var/www/CyAppStore/django.wsgi

      This tells Apache and mod_wsgi where to locate the site code. Make sure the path to django.wsgi is correct.

  2. /var/www/CyAppStore/django.wsgi

    • This file invokes Django's WSGI handler. It needs to correctly reference settings.py to start the site. Make sure these two lines correctly reference the location of the site:

      SITE_PARENT_DIR = '/var/www'
      SITE_DIR = filejoin(SITE_PARENT_DIR, 'CyAppStore')
      To check if these variables are being defined correctly, you can launch a separate Python interpreter and enter these lines:
      from os.path import join as filejoin
      SITE_PARENT_DIR = '/var/www'
      SITE_DIR = filejoin(SITE_PARENT_DIR, 'CyAppStore')

      Then check if the variables SITE_PARENT_DIR and SITE_DIR are correct.

  3. /var/www/CyAppStore/settings.py

    • This file is pretty complicated. But if you've checked everything at this point, here's some ways to pinpoint problems in settings.py.

      1. s
      2. If you're getting database errors, enter this command at the shell prompt in the same directory as settings.py:

        python manage.py dbshell
        If you're able to get a SQL prompt, that means the log in settings into the SQL database is correct.

AppStore (last edited 2018-02-14 16:54:47 by bdemchak)

Funding for Cytoscape is provided by a federal grant from the U.S. National Institute of General Medical Sciences (NIGMS) of the Na tional Institutes of Health (NIH) under award number GM070743-01. Corporate funding is provided through a contract from Unilever PLC.

MoinMoin Appliance - Powered by TurnKey Linux