Python
ORM
Python
Атрибуты при открытии файла
Запись
Чтение
Скрайбинг текста из википедии
SQLite
pip install peewee
pip install flask-peewee
Метаданные
Типы полей 1
Типы полей 2
Типы полей 3
Типы полей 4
Специальные параметры полей
https://sqlitebrowser.org/
Использование save
Использование create
Изменение записей
Извлечение одной записи SelectQuery.get()
Извлечение нескольких записей
Использование join
Сортировка по алфавиту SelectQuery.order_by()
Упорядочивание по возрасту
Фильтр по дате
or не всегда работает
Персонажи, начинающиеся с буквы g
SelectQuery.group_by()
SelectQuery.having()
SelectQuery.limit()
SelectQuery.offset()
Python
https://www.postgresql.org/download/
http://postgresql.ru.net/
pip install psycopg2
pip install psycopg2-binary
pip freeze
Чтение csv
Соединение с БД и создание таблицы
db.atomic снижение нагрузки при записи БД
Наследование в ORM
MySQL
Коннектор
https://www.mysql.com/downloads/
https://dev.mysql.com/downloads/connector/python/2.0.html
Работа в командной строке
pip install mysqlclient
Совместимые с 3
3.74M
Category: databasedatabase

Язык программирования Python. SQL

1. Python

SQL

2. ORM

• Object Relational Mapping (Объектнореляционное отображение)
• Объектно-реляционное отображение — это
технология программирования, которая
связывает базы данных с
концепциями объектноориентированных языков программирования,
создавая «виртуальную объектную базу
данных». Существуют как проприетарные, так
и свободные реализации этой технологии.

3. Python

csv

4. Атрибуты при открытии файла

Режим
Обозначение
'r'
открытие на чтение (является значением по умолчанию).
'w'
открытие на запись, содержимое файла удаляется, если файла
не существует, создается новый.
'x'
открытие на запись, если файла не существует, иначе
исключение.
'a'
открытие на дозапись, информация добавляется в конец
файла.
'b'
открытие в двоичном режиме.
't'
открытие в текстовом режиме (является значением по
умолчанию).
'+'
открытие на чтение и запись

5. Запись

• d1={'name':'Pert','surname':'Romanov','age':44}
• d2={'name':'Vlodimir','surname':'Lenin','age':34}
• d3={'name':'Lev','surname':'Tolstoy','age':74}
• d_list=[d1,d2,d3]
• for i in d_list:
print(i)
write_csv(i)

6.

• import csv
• def write_csv(data):
with open('writers.csv','a') as file:
writer=csv.writer(file)
#writer=csv.writer(file,delimiter=',')
#writer=csv.writer(file, dialect='Excel')
#writer.writerow((data['name'],data['surname'],data['age']))
writer.writerow([data['name'],data['surname'],data['age']])

7.

• def write_csv2(data):
with open('writers2.csv','a') as file:
order=['name','surname','age']
writer=csv.DictWriter(file,
fieldnames=order)
writer.writerow(data)

8. Чтение

• def open_csv():
with open('writers2.csv','r') as file:
reader=csv.DictReader(file)
for i in reader:
print(i)

9.

• def open_csv():
with open('writers2.csv','r') as file:
order=['name','surname','age']
reader=csv.DictReader(file,
fieldnames=order)
for i in reader:
print(i)

10.

11. Скрайбинг текста из википедии

12. SQLite

13. pip install peewee

14. pip install flask-peewee

15.

16.

17.


null=False – возможно ли хранение null-значений;
index=False – создавать ли индекс для данного столбца в базе;
unique=False – создавать ли уникальный индекс для данного столбца в базе;
verbose_name=None – строка для человекопонятного представления поля;
help_text=None – строка с вспомогательным текстом для поля;
db_column=None – строка, явно задающая название столбца в базе для
данного поля, используется например при работе с legacy базой данных;
default=None – значение по-умолчанию для полей класса при
инстанцировании;
choices=None – список или кортеж двухэлементных кортежей, где первый
элемент – значение для базы, второй – отображаемое значение (аналогично
джанге);
primary_key=False – использовать ли данное поле, как первичный ключ;
sequence=None – последовательность для наполнения поля (удостоверьтесь,
что бекэнд поддерживает такую функциональность);

18. Метаданные

Опция
Описание
Наследуется?
database
база данных для модели
да
db_table
название таблицы, в
которой будут храниться
данные
нет
indexes
список полей для
индексирования
да
order_by
список полей для
сортировки по-умолчанию
да
primary_key
составной первичный ключ,
экземпляр класса
CompositeKey
да
table_alias
алиас таблицы для
использования в запросах
нет

19. Типы полей 1

Field Type
Sqlite
Postgresql
MySQL
IntegerField
integer
integer
integer
BigIntegerField
integer
bigint
bigint
SmallIntegerField
integer
smallint
smallint
AutoField
integer
serial
integer
BigAutoField
integer
bigserial
bigint

20. Типы полей 2

Field Type
Sqlite
Postgresql
MySQL
IdentityField
not supported
int identity
not supported
FloatField
real
real
real
DoubleField
real
double precision
double precision
DecimalField
decimal
numeric
numeric
CharField
varchar
varchar
varchar
FixedCharField
char
char
char

21. Типы полей 3

Field Type
Sqlite
Postgresql
MySQL
TextField
text
text
text
BlobField
blob
bytea
blob
BitField
integer
bigint
bigint
BigBitField
blob
bytea
blob
UUIDField
text
uuid
varchar(40)
BinaryUUIDField
blob
bytea
varbinary(16)

22. Типы полей 4

Field Type
Sqlite
Postgresql
MySQL
DateTimeField
datetime
timestamp
datetime
DateField
date
date
date
TimeField
time
time
time
TimestampField
integer
integer
integer
IPField
integer
bigint
bigint
BooleanField
integer
boolean
bool
BareField
untyped
not supported
not supported
ForeignKeyField
integer
integer
integer

23. Специальные параметры полей

Field type
Special Parameters
CharField
max_length
FixedCharField
max_length
DateTimeField
formats
DateField
formats
TimeField
formats
TimestampField
resolution, utc
DecimalField
max_digits, decimal_places, auto_round,
rounding
ForeignKeyField
model, field, backref, on_delete, on_upd
ate, deferrable
BareField
adapt

24.

25. https://sqlitebrowser.org/

26.

27.

28.

29. Использование save

30. Использование create

31. Изменение записей

32.

33.

34. Извлечение одной записи SelectQuery.get()

35. Извлечение нескольких записей

36.

37.

38. Использование join

39. Сортировка по алфавиту SelectQuery.order_by()

40. Упорядочивание по возрасту

41. Фильтр по дате

42. or не всегда работает

43.

44. Персонажи, начинающиеся с буквы g

45. SelectQuery.group_by()

46. SelectQuery.having()

47. SelectQuery.limit()

48. SelectQuery.offset()

49. Python

Postgre

50. https://www.postgresql.org/download/

51. http://postgresql.ru.net/

52.

53.

54.

55.

56.

57.

58. pip install psycopg2

59. pip install psycopg2-binary

60. pip freeze

61. Чтение csv

62. Соединение с БД и создание таблицы

63.

64.

65.

66.

67. db.atomic снижение нагрузки при записи БД

68.

69. Наследование в ORM

• psql_db = PostgresqlDatabase('my_database',
user='postgres')
• class BaseModel(Model):
pass
class Meta:
database = psql_db
• class User(BaseModel):
username = CharField()

70. MySQL

71. Коннектор

• https://dev.mysql.com/downloads/connector/
python/2.0.html

72. https://www.mysql.com/downloads/

73.

74.

75.

76.

77.

78.

79.

80.

81.

82.

83.

84.

85.

86.

87.

88.

89.

90.

91.

92.

93.

94.

95.

96.

97. https://dev.mysql.com/downloads/connector/python/2.0.html

https://dev.mysql.com/downloads/con
nector/python/2.0.html

98. Работа в командной строке

99.

100.

101.

102.

103.

104.

• pip install pymysql

105. pip install mysqlclient

106.

• MySQLdb1 – не совместим пока с 3
• MySQLdb2 - не совместим пока с 3
• moist - будет

107. Совместимые с 3


mysql-connector-python
pymysql
CyMySQL
mysqlclient

108.


PHP MySQL
Python Django PostgreSQL
Node.js MongoDB
SQLite
English     Русский Rules