Uso di Django per creare siti figlio

2

Sto creando una serie di piccoli siti, sto usando il framework django. La teoria dice che un utente arriva in un sito principale, si iscrive, quindi ottiene il proprio sito figlio.

Esempio:

  • vai a example.com
  • l'utente crea un account "mysite"
  • l'utente ottiene quindi il proprio sito: mysite.example.com e può configurare tutto ciò che desidera

La mia domanda: * Sarebbe meglio avere una versione "gold" del sito che viene creata per ogni sito?

per esempio: cp ~ / goldsite ~ / mysite e modificare opportunamente i puntatori del database ** Lo svantaggio è che se dovessi fare manutenzione su un file, dovrei cambiare tutti i siti secondari.

... o * avere un host e configurare il database per supportare più siti. Il DB potrebbe diventare disordinato.

Qualsiasi feedback sarebbe fantastico.

    
posta Paul 25.04.2014 - 22:13
fonte

1 risposta

1

Il mio suggerimento sarebbe di creare un server di base django separato che fungerà da API del servizio web.

Questo server web utilizzerà rpcdjango che, se utilizzato con qualsiasi metodo come decoratore, lo converte a un metodo callable HTTP.

Dovrai impegnarti di più sulla progettazione del database in modo che non diventi troppo complesso.

Quindi crea la tua singola applicazione web usando qualsiasi tecnologia (preferisco AngularJS e Bootstrap) che si connetterà al server django usando i metodi Ajax.

Ecco un esempio di django rpc4django :

  1. In primo luogo, devi aggiungere un nuovo pattern URL al tuo file root urls.py . Puoi sostituire r '^ RPC2 $' con qualsiasi cosa desideri.

urls.py

urlpatterns = patterns(’’,
    # rpc4django will need to be in your Python path
    (r’^RPC2$’, ’rpc4django.views.serve_rpc_request’),
)
  1. In secondo luogo, aggiungi rpc4django all'elenco delle applicazioni installate in settings.py .

settings.py

INSTALLED_APPS = (
    ’rpc4django’,
)
  1. Infine, devi consentire a rpc4django di sapere quali metodi rendere disponibili. Rpc4django importa in modo ricorsivo tutte le app in INSTALLED_APPS e rende qualsiasi metodo importabile tramite __init __. py *** con il decoratore @rpcmethod disponibile come metodi RPC. Puoi sempre scrivere i tuoi metodi RPC in un altro modulo e importarlo semplicemente in __init __. Py.

testapp / __ init __. Py

from rpc4django import rpcmethod
# The doc string supports reST if docutils is installed
@rpcmethod(name=’mynamespace.add’, signature=[’int’, ’int’, ’int’])
def add(a, b):
    ’’’Adds two numbers together
    >>> add(1, 2)
    3
    ’’’
    return a+b

rpc4django documentation

    
risposta data 15.04.2015 - 21:03
fonte

Leggi altre domande sui tag