Этот банк вопросов для интервью организован и выпущен общедоступным номером: программисты без бакалавриата.
Вопрос 1: Что такое контекст запроса и контекст приложения в Flask?
- Когда запрос обрабатывается во Flask, создается объект «контекст запроса», и весь процесс обработки запроса будет выполняться в этом объекте контекста. Это гарантирует, что обработка запроса не будет нарушена. Содержит информацию, связанную с обработкой запроса, и Flask также использует LocalStack, структуру данных, реализованную в модуле werkzeug.local, для хранения объектов «контекста запроса».
- «Контекст приложения» также является объектом контекста, вы можете использовать оператор with для создания контекстной среды, он также реализует методы push, pop и другие. Конструктор «контекста приложения» также похож на «контекст запроса» с такими атрибутами, как app и url_adapter. Одной из основных функций «контекста приложения» является определение приложения, в котором выполняется запрос.
Вопрос 2: Использование промежуточного программного обеспечения django?
Django предустановляет методы 6 в промежуточном программном обеспечении. Разница между этими методами 6 заключается в том, что они выполняются на разных этапах и вмешиваются в ввод или вывод. Методы следующие:
#1 初始化: 无需任何参数,服务器响应第一个请求的时候调用一次,用于确定是否启用当前中间件
def __init__():
pass
#2.处理请求前:在每个请求上调用,返回None或者HttpResponse 对象
def process_response(request):
pass
#3 处理视图前,在每个请求上调用,返回None 或HttpResopnse对象
def process_view(request.view_func, view_args, view_kwargs):
pass
#4 处理模板响应前: 在每个请求上调用,返回实现render 方法的响应对象
def peocess_template_response(request, response):
pass
#5 处理响应后,多有响应返回浏览器之前被调用,每个请求上调用,返回HttpResponse对象
def process_response(request, response):
pass
#6 异常处理:当时图抛出异常时调用,在每个请求上调用,返回一个HttpResponse对象
def process_exception(request, execption):
pass
Вопрос 3: Какая оптимизация данных была выполнена при разработке django?
- При проектировании таблиц используйте как можно меньше внешних ключей, поскольку ограничения внешнего ключа могут повлиять на производительность вставки и удаления.
- Используйте кеш, чтобы уменьшить доступ к базе данных
- При настройке таблицы в рамках ORM, когда вы можете использовать varchar для определения длины поля, не используйте текст
- Вы можете получить свойства поля для частоты поиска и создать индексы во время определения.
- Наборы запросов в фреймворке django orm уже кэшированы.
- Если страница должна ссылаться на базу данных несколько раз, лучше удалить все необходимые данные за один раз, чтобы уменьшить количество запросов к базе данных.
- Если странице требуется только одно или два поля в базе данных, вы можете использовать QuerySet.values()
- Используйте тег with в теге template для кэширования результатов запроса Qset.
Вопрос 4: Объясните взаимосвязь и разницу между Django и Tornado?
Django
Django возник на новостном веб-сайте в Интернете и был выпущен с открытым исходным кодом в 2005 году.
Основные компоненты фреймворка Django:
Реляционное сопоставление объектов для создания моделей Безупречный интерфейс администратора для конечных пользователей Первоклассный дизайнер URL-адресов Удобный язык шаблонов Система кэширования и многое другое
Он поощряет быструю разработку и соответствует дизайну MVC.
Django соблюдает авторские права BSD, последняя версия Django1.4 выпущена 23 марта 2012 г. Основная цель Django — простая и быстрая разработка веб-сайтов, управляемых базами данных. Он делает упор на повторное использование кода, а несколько компонентов могут легко обслуживать всю структуру в виде «плагинов». В Django есть много мощных сторонних плагинов, и вы даже можете легко разработать свой собственный набор инструментов. Это делает Django очень расширяемым. Он также подчеркивает быстрое развитие и принципы DRY (не повторяйтесь).
Tornado
Tornado — это версия масштабируемого неблокирующего веб-сервера с открытым исходным кодом и связанных с ним инструментов, используемых FriendFeed. Этот веб-фреймворк немного похож на web.py или веб-приложение Google, но он также включает в себя некоторые полезные инструменты и оптимизации для эффективного использования неблокирующей серверной среды.
Tornado имеет явное отличие от основных сегодняшних фреймворков веб-серверов (включая большинство Python): это неблокирующий сервер, и он довольно быстрый. Благодаря неблокирующему подходу и использованию epoll Tornado может обрабатывать тысячи подключений в секунду, что означает, что Tornado является идеальной веб-платформой для веб-сервисов в реальном времени. Основной целью разработки этого веб-сервера является поддержка функций FriendFeed в реальном времени: каждый активный пользователь в приложении FriendFeed поддерживает соединение с сервером. (О том, как масштабировать сервер для обработки тысяч клиентских подключений.
Вопрос 5: Что такое restful API, расскажите о своем понимании?
- ОТДЫХ: Аббревиатура от Representational State Transfer, перевод: «Representational State Transfer». Обычно объясняется как «переход состояния уровня представления».
- REST — это стиль дизайна, а не стандарт. Относится к форме взаимодействия между клиентом и сервером. Нам нужно сосредоточиться на том, как проектировать
- RESTful веб-интерфейс.
Особенности ОТДЫХА
- образный. Обычно относится к уровню представления, объект, который должен быть представлен, является ресурсом. Например, когда клиент обращается к серверу, полученные данные являются ресурсом. Например, текст, изображения, аудио и видео и т. д.
- Представление: представление ресурса. формат txt, формат html, формат json, формат jpg и т. д. Браузер определяет местоположение ресурса через URL-адрес, но его необходимо указать в заголовке HTTP-запроса с полями Accept и Content-Type, которые являются описаниями представления ресурса.
- Переходы между состояниями: Процесс взаимодействия клиента и сервера. В этом процессе должно быть преобразование данных и состояния, которое называется преобразованием состояния. Среди них GET означает получение ресурсов, POST означает создание новых ресурсов, PUT означает обновление ресурсов, а DELETE означает удаление ресурсов. Эти четыре режима работы наиболее часто используются в протоколе HTTP.
RESTful архитектура
- Каждый URL-адрес представляет собой ресурс;
- Между клиентом и сервером проходит какой-то уровень представления этого ресурса;
- Клиент управляет ресурсами сервера с помощью четырех HTTP-команд для реализации перехода состояния уровня представления.
Вопрос 6: Следите за вопросом, недавно обновленная волшебная серия вступительных статей на официальном аккаунте
ее диплом колледжа 27 лет, изучаю языки программирования c, c++, python с нуля 29-летняя девушка пишет 100 учебных пособий по кейсам Овладеть 10 языками программирования к 30 годам, Скажу вам с опытом самообучения, чтобы научиться программировать, нужно найти ластик мечты
Добро пожаловать, обратите внимание на ее общедоступный номер, ищите - программист без бакалавриата.