2013-02-13 39 views
14

क्या कोई भी Django के साथ काम करने के लिए Yeoman प्राप्त करने में सक्षम है ?? मैंने इसे सेट अप करने का प्रयास किया है और यहां तक ​​कि अगर मैं अपनी गंदगी फ़ाइल को सही पथ में बदलता हूं तो भी यह डिफ़ॉल्ट रूप से उपयोग करता है।Django के साथ Yeoman सेट करना

मैंने केवल खोज की है लेकिन ऐसा नहीं है कि कोई भी ऐसी फ़ाइल संरचना का उपयोग कर रहा है।

+0

मैं व्यक्तिगत रूप से सुझाव है कि आप के बजाय Django के साथ ब्रंच का उपयोग करें - https://github.com/sebastibe/brunch-django-examples ब्रंच भी Yeoman की तुलना में एक अधिक परिपक्व पुस्तकालय है। लेकिन यह आपके मूल प्रश्न का उत्तर नहीं देता है। इसलिए, यहां केवल एक टिप्पणी है। :-) –

उत्तर

29

तो यह ऊपर की एक वास्तव में बेवकूफ टिप्पणी थी। :-)

यहां एक उचित प्रतिक्रिया है! सीएसएस, जेएस और एचटीएमएल फाइलों को जल्दी से उत्पन्न करने के लिए यमन बस हमारे लिए एक मचान उपकरण है। मैं इसे पूरी तरह से decoupled तरीके से उपयोग कर रहा हूँ, साफ से django से अलग।

यहां फ्रंटेंड साइट की पेड़ संरचना है।

/Users/calvin/work/yeoman-test/ 
|~app/ 
| |~scripts/ 
| | |~controllers/ 
| | | `-main.js 
| | |~vendor/ 
| | | |-angular.js 
| | | |-angular.min.js 
| | | |-es5-shim.min.js 
| | | `-json3.min.js 
| | `-app.js 
| |~styles/ 
| | |-bootstrap.css 
| | `-main.css 
| |+views/ 
| |-.buildignore 
| |-.htaccess 
| |-404.html 
| |-favicon.ico 
| |-index.html 
| `-robots.txt 
|~test/ 
| |+spec/ 
| `+vendor/ 
|-.gitattributes 
|-.npmignore 
|-Gruntfile.js 
|-package.json 
`-testacular.conf.js 

और यहाँ Django आवेदन एक शुद्ध json वेब सेवा के रूप में अभिनय के लिए वृक्ष संरचना है। Django-tastypie का उपयोग करना।

/Users/calvin/work/yeomandjango/ 
|~deploy/ 
| |-crontab 
| |-gunicorn.conf.py 
| |-live_settings.py* 
| |-nginx.conf 
| `-supervisor.conf 
|~requirements/ 
| `-project.txt 
|+static/ 
|-.gitignore 
|-.hgignore 
|-__init__.py 
|-__init__.pyc 
|-dev.db 
|-fabfile.py 
|-local_settings.py 
|-local_settings.pyc 
|-manage.py* 
|-settings.py 
|-settings.pyc 
|-urls.py 
`-urls.pyc 

ऐसे http://service.mysite.com/api/v1/ के रूप में डोमेन और यूआरएल से Django वेब सेवा चल रहा है और हमारे दृश्यपटल Yeoman होने से उत्पन्न "स्थिर" साइट http://mysite.com रूप में की जरूरत इन API यूआरएल बुला।

यौगिक एंजुलरजेएस ऐप उत्पन्न करता है बस पोस्ट/गेट्स/पुट्स/हमारे django-tastypie एपीआई द्वारा दिए गए एपीआई संसाधन/यूआरएल को हटा देता है।

यह एक कमजोर युग्मित विन्यास है जिसे आप विचार कर सकते हैं।

हालांकि, ध्यान दें कि यह सेट-अप "क्रॉस-डोमेन API अनुरोध" कर रहा है। इसका मतलब है कि हमारे "सर्वर-साइड" django अनुप्रयोग पर, हमें सीओआरएस को संभालने की आवश्यकता होगी।

यहां एक उदाहरण मिडलवेयर स्निपेट है जिसे काम करने के लिए django सर्वर पक्ष में कार्यान्वित करने की आवश्यकता है।

import re 

from django.utils.text import compress_string 
from django.utils.cache import patch_vary_headers 

from django import http 

try: 
    import settings 
    XS_SHARING_ALLOWED_ORIGINS = settings.XS_SHARING_ALLOWED_ORIGINS 
    XS_SHARING_ALLOWED_METHODS = settings.XS_SHARING_ALLOWED_METHODS 
except: 
    XS_SHARING_ALLOWED_ORIGINS = '*' 
    XS_SHARING_ALLOWED_METHODS = ['POST','GET','OPTIONS', 'PUT', 'DELETE'] 


class XsSharing(object): 
    """ 
     This middleware allows cross-domain XHR using the html5 postMessage API. 


     Access-Control-Allow-Origin: http://foo.example 
     Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE 
    """ 
    def process_request(self, request): 

     if 'HTTP_ACCESS_CONTROL_REQUEST_METHOD' in request.META: 
      response = http.HttpResponse() 
      response['Access-Control-Allow-Origin'] = XS_SHARING_ALLOWED_ORIGINS 
      response['Access-Control-Allow-Methods'] = ",".join(XS_SHARING_ALLOWED_METHODS) 

      return response 

     return None 

    def process_response(self, request, response): 
     # Avoid unnecessary work 
     if response.has_header('Access-Control-Allow-Origin'): 
      return response 

     response['Access-Control-Allow-Origin'] = XS_SHARING_ALLOWED_ORIGINS 
     response['Access-Control-Allow-Methods'] = ",".join(XS_SHARING_ALLOWED_METHODS) 

     return response 
+0

देव पोर्पस के लिए आप अपने अग्रभाग से स्थानीय रूप से django api को कैसे कॉल करते हैं? –

+0

बहुत सरल ... विभिन्न बंदरगाहों पर Django स्थानीय सर्वर और फ्रंटेंड देव सर्वर चलाएं। फिर आप अपने कोणीय या किसी भी फ्रंटेंड फ्रेमवर्क को स्थानीयहोस्ट कॉल करने के लिए कॉन्फ़िगर कर सकते हैं: django-server-port तदनुसार डेटा के लिए। –

+0

अरे कैल्विन, आप अपनी यमन परियोजना को कैसे तैनात करते हैं? आप Django के लिए fabfile का उपयोग करते हैं, मुझे लगता है कि यह आश्चर्यजनक है कि यह यमन प्रोजेक्ट के लिए कैसे काम करता है, खासकर यदि कुछ परेशान कार्य हैं। – brsbilgic