任何人都可以得到Yeoman與Django合作? 我試圖設置它,即使我將我的grunt文件更改爲正確的路徑,它仍然使用默認值。與Django搭建Yeoman
我只搜索,但它並沒有任何人使用這種文件結構。
任何人都可以得到Yeoman與Django合作? 我試圖設置它,即使我將我的grunt文件更改爲正確的路徑,它仍然使用默認值。與Django搭建Yeoman
我只搜索,但它並沒有任何人使用這種文件結構。
所以這是我上面做出的一個非常愚蠢的評論。 :-)
這是一個正確的迴應! Yeoman只是一個腳手架工具,可以幫助我們快速生成css,js和html文件。我正在以完全分離的方式使用它,與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 Web服務的樹結構。使用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
通過運行域名和網址Django的Web服務,如http://service.mysite.com/api/v1/和有我們的前端自耕農產生的「靜態」網站http://mysite.com根據需要調用這些API網址。
yeoman生成的AngularJS應用程序只需發送/ GETS/PUTS /刪除我們的django-tastypie API提供的API資源/ URL。
這是一個鬆散耦合的配置,您可以考慮。
但請注意,此設置正在執行「跨域API請求」。這意味着在我們的「服務器端」django應用程序中,我們需要處理CORS。
下面是一個示例中間件代碼片段,需要在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
你如何從你的前端爲開發porpuses在本地調用django api? – 2014-06-15 03:23:00
非常簡單...在不同的端口上運行Django本地服務器和前端開發服務器。然後,您可以配置您的角度或任何前端框架以相應地調用localhost:django-server-port來獲取數據。 – 2014-10-03 11:35:41
嘿加爾文,你如何部署你的yeoman項目?你可以使用fab文件作爲Django,但我想知道它是如何爲yeoman項目工作的,特別是如果有一些咕嚕任務等。 – brsbilgic 2015-01-11 16:43:14
我個人建議你使用Django的早午餐,而不是 - https://github.com/sebastibe/brunch-django-examples早午餐也是一個比較成熟的庫比自耕農。但是這並不能回答你原來的問題。因此,這裏只是一個評論。 :-) – 2013-02-13 11:35:09