Настройка Yeoman с Django - программирование
Подтвердить что ты не робот

Настройка Yeoman с Django

Кто-нибудь может получить Yeoman для работы с Django?? Я попытался настроить его, и даже если я изменю свой файл grunt на правильные пути, он по-прежнему использует значение по умолчанию.

Я искал только, но это не значит, что кто-то использует такую ​​файловую структуру.

4b9b3361

Ответ 1

Итак, это был действительно глупый комментарий, который я сделал выше.: -)

Вот правильный ответ! Yeoman - это просто инструмент для лесов, который позволяет быстро генерировать файлы css, js и html. Я использую его совершенно развязанным образом, чисто отделенным от django.

Вот древовидная структура сайта frontend.

/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

Запустив веб-службу django из домена и URL-адресов, таких как http://service.mysite.com/api/v1/, а наш frontend yeoman создал "статический" сайт http://mysite.com, призывая эти URL-адреса API по мере необходимости.

Jooman создало приложение AngularJS просто POSTS/GETS/PUTS/УДАЛИТЬ ресурсы/URL-адреса api, предоставленные нашими API-интерфейсами django-tastypie.

Это слабосвязанная конфигурация, которую вы можете рассмотреть.

Однако обратите внимание, что эта настройка выполняет "запросы к междоменному 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