PyNotes
261 subscribers
125 photos
7 videos
1 file
60 links
**Code is communication**
admin: @Xojarbu
https://t.me/solutions_py for problem solutions
Download Telegram
#Django_ORM #Database
Convert existing databases to Django models
python manage.py inspectdb
or
python manage.py inspectdb > models.py
#Django_ORM #Database
Renaming Database table name in model class
#Django_ORM #Database
Rename column name in Database Table:
` a = models.CharField(max_length=40,db_column='column1')`
Note!!!
Use comments liberally not just for yourself, but for anyone else who might have to maintain or enhance your code in the future!!
SearchVector
For searching several fields by annotating to one field

>> from django.contrib.postgres.search import SearchVector
>>> Entry.objects.annotate(
... search=SearchVector('body_text', 'blog__tagline'),
... ).filter(search='Cheese')
[<Entry: Cheese on Toast recipes>, <Entry: Pizza Recipes>]
!! Bare exception is not recommended
Multiple exceptions sample
The finally Statement

output
:
A KeyError occurred!
The finally statement has executed!
Try/Except/Esle/Finally

Output:
`No error occurred
"The finally statement ran!`
r'
Treats the string as a raw string
#working_with_files
Title: Reading Files

Builtin operator with in python will automatically close the file when you are done processing it.
instead of :
handle = open("test.txt")
can use:
with open("test.txt") as file_handler
#working_with_files
Title:Writing files
#compare
Package with module!
A module is a single importable Python file whereas a package is made up of two or more modules. A package can be imported the same way a module is. Whenever you save a Python script of your own, you have created a module.
#compare
*args and **kwargs
*args - allows your function to get infinite arguments (without keywords)
**kwargs - allows your function to get infinite keyword arguments

*args returns tuple
**kwargs returns dictionary

** — for passing keys and values
Clean Code Principles
Code should be elegant and pleasing to read.
No duplication should be allowed. Use DRY (Don't Repeat Yourself)
Code should be covered with tests.
Every function should do one thing and do it well.
Codebase should contain only code that is needed.
#compare
Function & Method

A function inside a class changes its name to “method” and method has to have at least one argument (i.e. self)
#compare
all() and any()
all()
method demonstrates if List1 has List2 elements

# List1
List1 = ['python' , 'javascript', 'csharp', 'go', 'c', 'c++']

# List2
List2 = ['csharp1' , 'go', 'python']

check = all(item in List1 for item in List2)

any() checks if the list contains any elements of another one:
# List1
List1 = ['python' , 'javascript', 'csharp', 'go', 'c', 'c++']

# List2
List2 = ['swift' , 'php', 'python']

check = any(item in List1 for item in List2)
Time module
time.ctime() - converts a time in seconds since the epoch to a string representing local time ( For Unix systems, the epoch was in 1970).
time.sleep() - suspend execution of your script a given number of seconds like a pause.
time.strftime - create a string that represents the time in a more human readable format.
time.time - returns the time in seconds since the epoch as a floating point number.
#compare
Instance & Attribute

Instance
is a Python variable belonging to only one object, accessable in the scope of the object;

Class attribute is a Python variable belonging to a class rather than a particular object.
A "decorator" takes the function below and does something with it

Builtin decorators
@classmethod

Declares a class method.
The first parameter must be cls, which can be used to access class attributes.
The class method can only access the class attributes but not the instance attributes.
The class method can be called using ClassName.MethodName() and also using object.

Source_link