From d82244ff34b59c5007c6c81069bb26707aa4f2ec Mon Sep 17 00:00:00 2001 From: Julio Biason Date: Wed, 20 Jul 2016 13:22:57 -0300 Subject: [PATCH] more info about django and python --- django.html | 79 +++++++++++++++++++++++++++++++++++++++++++++++++---- python.html | 39 ++++++++++++++++++++------ 2 files changed, 105 insertions(+), 13 deletions(-) diff --git a/django.html b/django.html index 441fc03..3fabf5e 100644 --- a/django.html +++ b/django.html @@ -148,7 +148,7 @@ class Product(models.Model): """Product information""" - name = models.CharField(max_length=40) + name = models.CharField('Name', max_length=40) @@ -187,6 +187,9 @@ class ProductForm(ModelForm): class Meta: model = Product + +

O "label" do campo ficará com o valor do primeiro parâmetro + usado no field em ModelForms.

@@ -324,11 +327,48 @@ urlpatterns = [
-

Relationships

+
+

Índices

-

Projeto > App > models.py

+

Cada campo pode ser indexado usando a propriedade + db_index.

-

+                        

+class Order(models.Model):
+
+    """An order."""
+
+    costumer.models.ForeignKey(User, db_index=True)
+                        
+
+ +
+

Meta

+ +

Models podem ter uma classe de "Meta" com informações adicionais:

+ +

+class Order(models.Model):
+    
+    """An order."""
+
+    costumer = models.ForeignKey(User, db_index=True)
+    date = models.DateTimeField(auto_now=True)
+
+    class Meta:
+        db_table = 'my_orders'
+        index_together = [
+            ('costumer', 'date')
+        ]
+                        
+
+ +
+

Relationships

+ +

Projeto > App > models.py

+ +

 class Product(models.Model):
 
     """Product information"""
@@ -342,7 +382,36 @@ class Order(models.Model):
     """An order."""
 
     products = models.ManyToManyField(Product)
-                    
+
+
+ +
+

"OneToMany"

+ +

+ Não existe relacionamento "one to many" (p.ex., um + pedido tem vários ítens de pedido). Para isso, + usa-se o ForeignKey na parte "many". +

+ +

+class Order(models.Model):
+
+    """An order."""
+
+    costumer = models.ForeignKey(Users)
+
+
+class OrderItem(models.Model):
+
+    """An item of an order."""
+
+    order = models.ForeignKey(Order))metro
+    product = models.ForeignKey(Product)
+    quantity = models.PositiveIntegerField()
+                        
+ +
diff --git a/python.html b/python.html index b24da0f..c484674 100644 --- a/python.html +++ b/python.html @@ -266,7 +266,12 @@ Python 2.7.5 (default, Jun 25 2014, 10:19:55) [GCC 4.8.2 20131212 (Red Hat 4.8.2-7)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> -

+ + +

+ Python 2 (todas as versões), deixarão de ser + suportadas em 2020! +

@@ -423,12 +428,6 @@ set(['a'])

(... que é o nome bonito para coisas tipo if, for...)

-
-

Antes de mais nada...

- -

Blocos

-
-

if [condição]

@@ -687,6 +686,17 @@ iterável[start:end:step] 4

+ +
+

Funções podem conter funções

+ +

+>>> def funcao(a, b):
+...    def inner(b):
+...        return b * 2 if b > 0 else b * -2
+...    return inner(a) + b
+                        
+
@@ -949,10 +959,23 @@ class MockRoboDeLimpeza(RoboDeLimpeza, MockRobo) Super Considered super!

+ +
+

Assim como funções, classes podem conter classes:

+ +

+>>> class Outer(object):
+...    class Inner(object):
+...        def __init__(self):
+...            self.value = 1
+...    def __init__(self):
+...        self.value = Inner()
+                        
+
-

As Esquisitices de Python

+

Mais Esquisitices de Python