Пропустить теорию и перейти прямо к задачам
Ссылка на учебник: http://learn.javascript.ru
Сразу расскажу про несколько особенностей яваскрипта, о которых может быть не написано (или мало написано) в учебниках, но которые стоит понимать:
| import sys | |
| import pika | |
| # prerequisites are that you have RabbitMQ installed | |
| # create a "darkmatter" named VirtualHost (VHOST) | |
| # rabbitmqctl.bat add_vhost darkmatter | |
| # create a user APP_USER with associated APP_PASS word | |
| # rabbitmqctl add_user darkmatteradmin <password> | |
| # give the APP_USER the necessary permissions | |
| # rabbitmqctl set_permissions -p darkmatter darkmatteradmin ".*" ".*" ".*" |
| class FieldPermissionsMixin(object): | |
| """ | |
| A Serializer mixin for controlling which fields are included based on user permissions | |
| Usage: | |
| class MySerializer(FieldPermissionsMixin, serializers.ModelSerializer): | |
| class Meta: | |
| model = MyModel | |
| field_permissions = { | |
| 'field': ['app.permission'], |
Пропустить теорию и перейти прямо к задачам
Ссылка на учебник: http://learn.javascript.ru
Сразу расскажу про несколько особенностей яваскрипта, о которых может быть не написано (или мало написано) в учебниках, но которые стоит понимать:
| # views.py - django app called ajx | |
| from django.shortcuts import render, get_object_or_404, redirect, HttpResponse, render_to_response, HttpResponseRedirect | |
| from django.core.urlresolvers import reverse | |
| from django.contrib.auth import authenticate, login | |
| import json | |
| def mygetview(request): | |
| if request.method == 'GET': |
| // Для отправки вормы использовать jQuery ajax forms (http://jquery.malsup.com/form/) | |
| // Показывает ошибки формы | |
| function show_form_errors(form, error_json) | |
| { | |
| clear_form_errors(form); | |
| for (name in error_json) { | |
| var elem = form.find('input[name=' + name + '], textarea[name=' + name + ']'); | |
| elem.closest('.control-group').addClass('error'); | |
| elem.parent().prepend($('<span class="help-inline">*' + error_json[name] + '</span>')); | |
| } |
| import functools | |
| import sys | |
| import re | |
| from django.conf import settings | |
| from django.db import connection | |
| def shrink_select(sql): | |
| return re.sub("^SELECT(.+)FROM", "SELECT .. FROM", sql) | |
| def shrink_update(sql): |
| { | |
| "actstat": { | |
| "convert": { | |
| "actstatid": "int" | |
| } | |
| }, | |
| "addrobj": { | |
| "null": [ | |
| "actstat", | |
| "nextid", |
| .table-container th.asc:after { | |
| content: '\0000a0\0025b2'; | |
| } | |
| .table-container th.desc:after { | |
| content: '\0000a0\0025bc'; | |
| } | |
| .pagination { | |
| text-align: center; | |
| } |