Пропустить теорию и перейти прямо к задачам
Ссылка на учебник: http://learn.javascript.ru
Сразу расскажу про несколько особенностей яваскрипта, о которых может быть не написано (или мало написано) в учебниках, но которые стоит понимать:
.table-container th.asc:after { | |
content: '\0000a0\0025b2'; | |
} | |
.table-container th.desc:after { | |
content: '\0000a0\0025bc'; | |
} | |
.pagination { | |
text-align: center; | |
} |
{ | |
"actstat": { | |
"convert": { | |
"actstatid": "int" | |
} | |
}, | |
"addrobj": { | |
"null": [ | |
"actstat", | |
"nextid", |
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): |
// Для отправки вормы использовать 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>')); | |
} |
# 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': |
Пропустить теорию и перейти прямо к задачам
Ссылка на учебник: http://learn.javascript.ru
Сразу расскажу про несколько особенностей яваскрипта, о которых может быть не написано (или мало написано) в учебниках, но которые стоит понимать:
var result=[]; | |
for (var i = 0; i<5; i++){ | |
result[i] = (function(x){ | |
console.log(x); | |
})(i); | |
}; | |
result[0](); | |
result[1](); | |
result[2](); | |
result[3](); |
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'], |
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 ".*" ".*" ".*" |
''' | |
So my layers would be like this: | |
1. Presentation Layer: Used for translation from HTTP to Python and Python to HTTP | |
2. Authentication and Authorization Layer: for identifying the user and his information and permissions | |
3. Service Layer: For executing the Business Logic | |
4. Validation Layer: For validating the integrity and constraint of the data that is gonna be store | |
5. Data Layer: Orm layer | |
1. Represented by a URL of the router function of DRF and a ViewSet of DRF as well |