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