Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf ·...

67
Python_Pycharm_03 Трубочкина Н.К. 2018

Transcript of Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf ·...

Page 1: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Python_Pycharm_03

Трубочкина Н.К.

2018

Page 2: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Работа со строками • Строки - последовательность чувствительных к

регистру символов • Можно сравнивать строки (==,>, <) • len () - функция, используемая для получения

длины строки, указанной в скобках.

s = "abc" значение len (s) 3

Page 3: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Квадратные скобки, используются для индексации строки, чтобы получить значение по определенному индексу / позиции

индекс: 0 1 2 Индексирование всегда начинается с 0 индекс: -3 -2 -1 последний элемент всегда по индексу -1

s = "abc"

0 1 2 -3 -2 -1

s [0] оценивается как "a" s [1] оценивается как "b" s [2] оценивается как "c" s [3] - попытка индексировать за пределами, ошибка s [-1] оценивается как "c" s [-2] оценивается как "b" s [-3] оценивается как "а"

Page 4: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Можно использовать сечения строк, используя [start: stop: step] Если указать два числа, [start: stop], step = 1 по умолчанию Можно опустить числа и оставить только двоеточия

s = "abcdefgh " 0 1 2 3 4 5 6 7

s [3: 6] оценивается как "def", так же [3: 6: 1] s [3: 6: 2] оценивается как "df" s [::] оценивается как "abcdefgh", так же, как s [0: len (s): 1] s [:: - 1] переводится в "hgfedbca", так же, как s [-1 :-( len (s) +1): - 1] s [4: 1: -2] оценивается как "ec"

Page 5: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Строки являются «неизменяемыми» - не могут быть изменены

s = "hello"

s [0] = "y" выдает ошибку

s = "y" + s [1: len (s)] - разрешено, привязано к новому объекту

Page 6: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Пр

им

ер 2

-1

Page 7: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Для циклов есть переменная цикла, которая перебирает набор значений

for var in range(4) <выражения> для переменной цикла var в диапазоне (4) изменяются значения 0,1,2,3 Для каждого значения var выполняются <выражения> внутри цикла,

var в for var in range (4,6) изменяет значения 4,5

range - это способ перебора чисел, переменная цикла for может перебирать любой набор значений, и не только числа!

Page 8: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Строки и циклы Вариант 1

s = "abcdefgh"

for index in range(len(s)):

if s[index] == 'i' or s[index] == 'u':

print("There is an i or u")

Вариант 2

for char in s:

if char == 'i' or char == 'u':

print("There is an i or u")

Page 9: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

1 вариант

Пр

им

ер 2

-2-1

Page 10: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

1 вариант

Пр

им

ер 2

-2-2

Page 11: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

2 вариант

Пр

им

ер 2

-2-3

Page 12: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

2 вариант

Пр

им

ер 2

-2-4

Page 13: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

ПРИМЕР КОДА

Page 14: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Пр

им

ер 3

Page 15: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Пр

им

ер 4

Page 16: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

«Угадай и проверь» -

• такой процесс также называется исчерпывающим перечислением: – Вы можете угадать значение для решения

– Вы можете проверить, является ли решение правильным

– Продолжайте гадать, пока не найдете решение или не угадаете все значения

Page 17: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Пр

им

ер 5

-1

Page 18: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Пр

им

ер 5

-2

Page 19: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

ПРИБЛИЖЕННЫЕ РЕШЕНИЯ

- достаточно хорошие решения

• Начните с guess (некоторое предположение) и increment (приращение самой малой величины)

• Продолжайте изменение guess как в |guess3-cube| при epsilon (некоторый маленький epsilon) – уменьшение размера приращения => более медленная

программа

– «Увеличивающийся эпсилон» => менее точный ответ

Page 20: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Метод деления пополам для ускорения программ

• Половина интервала каждой итерации

• Новое предположение находится на полпути

Page 21: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Пр

им

ер 6

Page 22: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

ФУНКЦИИ • Можно записывать многократно используемые фрагменты

кода, в виде функций – функции не запускаются в программе до тех пор, пока они не

будут «вызваны»

• Характеристики: • имеет имя • имеет параметры (0 или более) • имеет строку документации (необязательно, но рекомендуется) • имеет тело • возвращает что-то

Page 23: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

КАК НАПИСАТЬ И ВЫЗВАТЬ ФУНКЦИЮ

Page 24: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Объявление функций

def <имя_функции> ( [ <список_параметров>] ): <тело_функции>

Здесь <тело_функции> - последовательность операторов, выровненных по тексту правее слова "def". <список_параметров> в самом общем виде выглядит так: [ < id > [,< id >]* ] [ < id >=< v > [,< id >=< v >]* ] [, *< id >] Здесь < id > - идентификатор переменной; < v > - некое значение. Параметры < id > за которыми следует "=" получают значения < v > по умолчанию. Если список заканчивается строкой " *< id > ", то id присваивается тьюпл (tuple) из всех оставшихся аргументов, переданных функции.

Page 25: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

В теле функции

Page 26: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

ОБЛАСТЬ ПРИМЕНЕНИЯ ПЕРЕМЕННОЙ

Page 27: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя
Page 28: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя
Page 29: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя
Page 30: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя
Page 31: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

ОДНО ПРЕДУПРЕЖДЕНИЕ, ЕСЛИ НЕТ return

• Python возвращает значение None, если нет return

• None представляет отсутствие значения

Page 32: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Уста

но

вка

пл

аги

га D

ash

2 1

3

Page 33: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

1

3

2 Уста

но

вка

пл

аги

га D

ash

Page 34: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя
Page 35: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя
Page 36: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя
Page 37: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

CGI: пишем простой сайт на Python. Часть 1: Hello world

• Проще всего создать динамические страницы на Python при помощи CGI-скриптов. CGI-скрипты - это исполняемые файлы, которые выполняются веб-сервером, когда в URL запрашивается соответствующий скрипт.

CGI — стандарт интерфейса, используемого для связи внешней программы с веб-сервером Common Gateway Interface, a standard for dynamic generation of web pages by a web server

Page 38: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Настройка локального сервера

В Python уже есть встроенный CGI сервер, поэтому его настройка элементарна.

Для запуска из консоли (для любителей linux-систем). Запускать нужно из той папки, где мы хотим работать:

python3 -m http.server --cgi

Page 39: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

• Для сидящих на Windows чуть проще будет запуск Python файла (заметьте, что он должен находиться в той же папке, в которой мы планируем работать!):

from http.server import HTTPServer, CGIHTTPRequestHandler server_address = ("", 8000) httpd = HTTPServer(server_address, CGIHTTPRequestHandler) httpd.serve_forever()

• Теперь откройте браузер и в адресной строке

наберите localhost:8000

Page 40: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Файл cgi-serv.py

Нас

тро

йка

ло

кал

ьно

го с

ерве

ра

Page 41: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Создаем файл hello.py • Теперь в той папке, где мы запустили сервер, создаём папку cgi-bin (в PyCcarm

она уже создана). • В этой папке создаём скрипт hello.py со следующим содержимым:

#!/usr/bin/env python3 print("Content-type: text/html") print() print("<h1>Hello world!</h1>")

• Первая строка говорит о том, что это Python скрипт (CGI-скрипты можно не только на Python писать).

• Вторая строка обозначает, что это будет html файл (бывает ещё css, javascript, pdf и другиe, и браузер различает их по заголовкам).

• Третья строка (просто символ новой строки) отделяет заголовки от тела ответа. • Четвёртая печатает Hello world.

Page 42: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя
Page 43: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

В строке адреса браузера набираем localhost:8000/cgi-bin/hello.py

Page 44: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Получение данных из форм. Создадим в корневой папке новый файл index.html

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Form 1</title> </head> <body> <form action="/cgi-bin/form.py"> <input type="text" name="TEXT_1"> <input type="text" name="TEXT_2"> <input type="submit"> </form> </body> </html>

Page 45: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя
Page 46: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

ind

ex.h

tml

Page 47: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

У класса FieldStorage есть 2 метода получения значений данных формы:

• FieldStorage.getfirst(name, default=None) - всегда возвращает только одно значение, связанное с именем поля формы. Метод возвращает только первое значение в том случае, если нехороший пользователь послал более одного значения. Обратите внимание, что порядок, в котором будут получены значения, могут отличаться от браузера к браузеру. Если нет такого поля формы или значение не существует, то метод возвращает default.

• FieldStorage.getlist(name) - возвращает список значений, связанных с именем поля формы.

Page 48: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

в папке cgi-bin/ - файл form.py

(обработчик формы)

#!/usr/bin/env python3 import cgi form = cgi.FieldStorage() text1 = form.getfirst("TEXT_1", "не задано") text2 = form.getfirst("TEXT_2", "не задано") print("Content-type: text/html\n") print("""<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Обработка данных форм</title> </head> <body>""") print("<h1>Обработка данных форм!</h1>") print("<p>TEXT_1: {}</p>".format(text1)) print("<p>TEXT_2: {}</p>".format(text2)) print("""</body> </html>""")

Page 49: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

form

.py

Page 50: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

В б

рау

зер

е:

loca

lho

st:8

00

0

Page 51: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Теги html не воспринимаются как текст Чтобы исправить эту уязвимость, измените form.py

Page 52: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Измененный form.py

#!/usr/bin/env python3

import cgi

import html

form = cgi.FieldStorage()

text1 = form.getfirst("TEXT_1", "не задано")

text2 = form.getfirst("TEXT_2", "не задано")

text1 = html.escape(text1)

text2 = html.escape(text2)

print("Content-type: text/html\n")

print("""<!DOCTYPE HTML>

<html>

<head>

<meta charset="utf-8">

<title>Обработка данных форм</title>

</head>

<body>""")

print("<h1>Обработка данных форм!</h1>")

print("<p>TEXT_1: {}</p>".format(text1))

print("<p>TEXT_2: {}</p>".format(text2))

print("""</body>

</html>""")

Page 53: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Cookies • Cookies (печеньки) — небольшой фрагмент данных, отправленный веб-сервером и

сохраняемый на компьютере пользователя. • Браузер всякий раз при попытке открыть страницу соответствующего сайта

пересылает этот фрагмент данных веб-серверу в составе HTTP-запроса. • Собственно, cookies - хороший способ сохранить некоторые данные о пользователях. • Отправка печенек осуществляется заголовком Set-cookie: #!/usr/bin/env python3 print("Set-cookie: name=value; expires=Wed May 18 03:33:20 2033; path=/cgi-bin/; httponly") print("Content-type: text/html\n") print("Cookies!!!")

Page 54: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

localhost:8000/cgi-bin/cookie.py

• вам поставится печенька с именем name и значением value. Срок её хранения до мая 2033 года, отправляется повторно на сервер только к скриптам, которые расположены в /cgi-bin/, и передается только http-запросами (её нельзя получить из браузера пользователя с помощью javascript).

print("Set-cookie: name=value; expires=Wed May 18 03:33:20 2033; path=/cgi-bin/; httponly")

Page 55: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Обработка Cookies • Теперь научимся получать cookies. Они передаются

на сервер и доступны в переменной os.environ (словарь, cookies хранятся по ключу HTTP_COOKIE). Они передаются в виде пар ключ=значение, что не очень удобно при обработке. Для упрощения работы можно использовать модуль http.cookies.

• Напишем простой скрипт (/cgi-bin/cookie.py), проверяющий, установлена ли кука, и если нет, устанавливает:

Page 56: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя
Page 57: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Пример приложения • напишем прототип приложения типа "твиттер". Данные

в файлах будем хранить в json (JSON (JavaScript Object Notation) - простой формат обмена данными, основанный на подмножестве синтаксиса JavaScript. Модуль json позволяет кодировать и декодировать данные в удобном формате).

• Создадим 2 файла: – первый (wall.py) будет отвечать за обработку данных,

вводимых пользователем, – Второй (_wall.py) - вспомогательный модуль (подключить

модуль можно с помощью инструкции import), который упростит код первого.

Page 58: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Вы можете их взять в текстовом формате:

• http://nadin.miem.edu.ru/wall.txt

• http://nadin.miem.edu.ru/_wall.txt

Page 59: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

http://localhost:8000/cgi-bin/wall.py

Page 61: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Шаблонизаторы для платформы Python :

• Mako http://www.makotemplates.org/

• Genshi http://genshi.edgewall.org/

• Jinja http://jinja.pocoo.org/

Page 62: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Работа с HTML-шаблонами в Python при помощи Jinja

• https://eax.me/python-jinja/

Этот шаблонизатор есть во Flask

Page 63: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Установка Flask на Pycharm

В Pycharm:

• Создайте проект Flask_01

• Перейдите в: Файл -> Настройки -> Проект: имя_проекта -> Интерпретатор проекта.

• Нажмите на знак + для поиска Flask. Выберите его и нажмите Установить пакет

Page 64: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя
Page 65: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя
Page 66: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя

Установка Django на Pycharm

В Pycharm:

• Создайте проект Django_01

• Перейдите в: Файл -> Настройки -> Проект: имя_проекта -> Интерпретатор проекта.

• Нажмите на знак + для поиска Django. Выберите его и нажмите Установить пакет

Page 67: Python Pycharm 03 - nadin.miem.edu.runadin.miem.edu.ru/!!!_lec_2018_pdf/Python_PyCharm_03.pdf · Можно использовать сечения строк, используя