1. Заводить под каждый проект свой virtualenv считается хорошей практикой. Очевидных минусов здесь нет, в отличие от иного подхода, да и дело-то это простое. ;-) Приложения, конечно, могут использовать идентичные пакеты, но нужно думать на перспективу.
2. Именно эта строка и указывает модулю, какое окружение использовать:
activate_env=os.path.expanduser("~/.virtualenvs/myprojectenv/bin/activate_this.py")
Ларавель предлагает проверять прямо в роутере
Что снова подтверждает мою мысль о том, что раут в Ларавели - это тот самый тонкий контроллер, о котором так много говорили большевики, конроллер - это модель, а модель - это тупо драйвер БД (ОРМ), используемый моделью.
Советую прекращать использовать уже Notepad++. Проект был хороший, но он устарел. На его место пришёл Sublime Text 3. Он может всё что мог Notepad++ и уже может больше. У него огромная база плагинов и он развивается 7ми мильными шагами. К тому же плагины для него пишутся на Python.
Нет psycopg2 это адаптер для PostgreSQL, который просто реализует протокол для обмена с СУБД.
ORM - это когда из таблиц БД создаются объекты. Пример ORM - sqlalchemy, django orm.
Надуманная проблема. Лично я сам разработчик, иногда привлекаю других и я вам скажу - нормального специалиста найти порой очень сложно. Которые не сливаются на стадии обсуждения или реализации, не пропадают без вести на недели, делают то, за что берутся как надо, а не через одно место. И с адекватным ценообразованием (я не против платить нормально, но когда мне за интеграцию верстки сайта-визитки в CMS выставляют счет в 50 тыс, то это не адекватно).
Как с вами связаться чтобы увидеть портфолио и уже понимать уровень? Если он соответствует заявленному, то работа найдется.
Зря вы так фреймворки не любите. Представьте вам придется контролировать заголовки, маршрутизацию и кроме этих прелестей смешивать html и программный код. Как только вы дойдете до пункта 2 вам станет не по себе, а сопровождать ваш код сможете только вы. Вы даже не сможете пустить в проект верстальщика(если он не владеет Python). Нет вы конечно можете к вашему проекту написать маршрутизатор, привинтить Jinja и SQLAlchemy что в итоге приведет к созданию фреймворка, но судя по вашему вопросу создавать свой фреймворк в ваши планы не входит.
Я бы Flask брал, хотя это может и субъективный выбор, люблю микрофреймворки, меньше навязывают. Pyramid говорят еще хорош, я его особо не трогал.
В общем если любишь чувство свободы, то Flask (может даже Pyramid), а если супер мощь с кучей интрументов, правил, традиций то Django, не исключаю что уже есть даже почти готовый функционал для последнего в плане досок объявлений.
Вообще то, что лучше Django или Flask это вопрос религии :). Лично мне больше нравится Flask. Многим не нравится что он по умолчанию не модульный, ну так никто не мешает сделать его модульным либо в ручную либо с помощью blueprint. Для ORM можно использовать SQLAlchemy. Для шаблонизатора Jinja2. Для всего остального у этого фреймворка есть куча extentions. Да некоторых компонентов нет в коробке и их надо отдельно ставить, но лично я не вижу никаких проблем в том чтобы набрать pip install <имя_модуля>. К тому же есть большой плюс в том что многие компоненты разрабатываются независимыми командами, это означает что если в компоненте баг то его скорее всего починят быстро, а в фреймворках где все батарейки внутри придется ждать выпуска новой версии.
В зависимости от вида - необходимость в использовании бд разнится
Для приемочных-фнкциональных - БД должна быть с данныи близкими к реальным (идеально, обфусцированная база текущего продакшена) на СУБД с настройками максимально близкими к продакшену
Для юнит - БД нужна только если тестируется ОРМ
factory_boy для юнит тестов
selenium для приемочных