Instalação e colocação em funcionamento¶
Plataformas e pré-requisitos suportados¶
PY4WEB funciona muito bem no Windows, MacOS e Linux. Seu único pré-requisito é Python 3.6+, que deve ser instalado com antecedência (exceto se você usar os binários).
Procedimentos de configuração¶
Existem quatro formas alternativas de correr py4web, com diferentes níveis de dificuldade e flexibilidade. Vamos olhar os prós e contras.
Instalando a partir de binários¶
Esta não é uma instalação real, porque você acabou de copiar um monte de arquivos em seu sistema sem modificá-lo de qualquer maneira. Daí esta é a solução mais simples, especialmente para iniciantes ou alunos, porque ele não requer Python pré-instalado em seu sistema, nem direitos administrativos. Por outro lado, é experimental, poderia conter uma liberação py4web de idade e é muito difícil para adicionar outras funcionalidades a ele.
A fim de usá-lo você só precisa fazer o download do arquivo mais recente do Windows ou MacOS zip do este repositório externo <https://github.com/nicozanf/py4web-pyinstaller> __. Descompacte-o em uma pasta local e abrir uma linha de comando lá. finalmente executar
py4web-start set_password
py4web-start run apps
Com este tipo de instalação, lembre-se de usar sempre py4web-start ** ** em vez de ‘py4web’ ou ‘py4web.py’ na seguinte documentação.
Dica: use um ambiente virtual (virtualenv)¶
A instalação completa de qualquer aplicação python complexo como py4web certamente irá modificar o ambiente python do seu sistema. A fim de evitar qualquer alteração indesejada, é um bom hábito de usar um ambiente virtual python (também chamado ** virtualenv **, veja aqui <https://docs.python.org/3.7/tutorial/venv.html> __ para uma introdução). Este é um recurso padrão do Python; se você ainda não sabe virtualenv é um bom momento para começar a sua descoberta!
Ativá-lo antes de usar qualquer um dos seguintes * real * procedimentos de instalação é altamente recomendado.
Instalando a partir de pip¶
Usando pip * * é o procedimento de instalação padrão para py4web. A partir da linha de comando
python3 -m pip install --upgrade py4web --no-cache-dir --user
mas ** não ** digite o * -user * opção com virtualenv ou uma instalação padrão do Windows que já por usuário é.
Além disso, se * python3 * não funcionar, tente com o simples * python * comando em vez.
Isto irá instalar py4web e todas as suas dependências em único caminho do sistema. A pasta de ativos (que contém os aplicativos do sistema do py4web) também será criado. Após a instalação, você será capaz de começar a py4web em qualquer pasta de trabalho com
py4web setup apps
py4web set_password
py4web run apps
Se o py4web comando não é aceito, isso significa que ele não está no caminho do sistema. No Windows, um arquivo py4web.exe especial (apontando para py4web.py) será criado por * pip * no caminho do sistema, mas não se você digitar o * -user * opção por engano.
Instalação de fonte (globalmente)¶
Esta é a maneira tradicional para a instalação de um programa, mas ele só funciona em Linux e MacOS. Todos os requisitos será instalado no caminho do sistema, juntamente com links para o programa py4web.py na pasta local
git clone https://github.com/web2py/py4web.git
cd py4web
make assets
make test
make install
py4web run apps
Also notice that when installing in this way the content of
py4web/assets
folder is missing at first but it is manually created
later with the make assets
command.
Instalando a partir de fonte (localmente)¶
In this way all the requirements will be installed or upgraded on the system’s path, but py4web itself will only be copied on a local folder. This is especially useful if you already have a working py4web installation but you want to test a different one. From the command line, go to a given working folder and then run
git clone https://github.com/web2py/py4web.git
cd py4web
python3 -m pip install --upgrade -r requirements.txt
Uma vez instalado, você deve sempre começar a partir daí com
** Para Linux / MacOS **
./py4web.py setup apps
./py4web.py set_password
./py4web.py run apps
Se você tiver instalado py4web tanto global como localmente, observe a ** / **.; ele força o prazo de py4web da pasta local e não o instalado globalmente.
Para Windows
python3 py4web.py setup apps
python3 py4web.py set_password
python3 py4web.py run apps
No Windows, os programas na pasta local são sempre executados antes de os do caminho (portanto, você não precisa do **. / **). Mas a execução de arquivos .py diretamente não é habitual e você vai precisar de um comando explícito python3 / python.
Melhoramento¶
Se você instalou py4web de pip você pode simples atualizá-lo com
python3 -m pip install --upgrade py4web
Aviso
Isto não irá atualizar automaticamente os aplicativos padrão, como o Dashboard ** ** e padrão ** **. Você tem que remover manualmente esses aplicativos e execute
py4web setup apps
a fim de re-instalá-los. Esta é uma precaução de segurança, no caso de você fez alterações para esses aplicativos.
Se você instalou py4web de qualquer outra maneira, você deve atualizá-lo manualmente. Primeiro você tem que fazer um backup de qualquer trabalho py4web pessoal que você fez, em seguida, elimine a pasta de instalação de idade e re-instalar o quadro novamente.
Primeira corrida¶
Correndo py4web utilizando qualquer um procedimento anterior deve produzir uma saída como esta:
# py4web run apps

Geralmente `` apps`` é o nome da pasta onde você guarda todos os seus aplicativos, e pode ser definido explicitamente sagacidade o comando `` run``. Se essa pasta não existir, ele será criado. PY4WEB espera encontrar pelo menos dois aplicativos nesta pasta: ** Painel ** (_dashboard) e ** Padrão ** (_default). Se não encontrá-los, ele instala-los.
** Painel ** é um baseado na web IDE. Ele será descrito no próximo capítulo.
** Padrão ** é um aplicativo que não faz nada diferente de boas-vindas ao usuário.
Nota
Alguns aplicativos - como o Dashboard ** ** e padrão ** ** - têm um papel especial na py4web e, portanto, seus começos nome real com `` _`` para evitar conflitos com aplicativos criados por você.
Uma vez py4web está sendo executado você pode acessar um aplicativo específico nas seguintes URLs:
http://localhost:8000
http://localhost:8000/_dashboard
http://localhost:8000/{yourappname}/index
A fim de py4web stop, você precisa acertar: kbd: Control-C na janela onde você executá-lo.
Nota
Somente o padrão ** ** aplicativo é especial porque se não exige que o “{AppName} /” prefixo no caminho, como todos os outros aplicativos fazer. Em geral, você pode querer ligar simbolicamente `` apps / _default`` ao seu aplicativo padrão.
Para todas as aplicações de arrastamento `` / index`` é opcional.
Aviso
For Windows: it could be that Ctrl-C
does not work in order to stop py4web.
In this case, try with Ctrl-Break
or Ctrl-Fn-Pause
.
Opções de linha de comando¶
py4web fornece várias opções de linha de comando que podem ser listados por executá-lo sem qualquer argumento
# py4web

Você pode ter ajuda adicional para uma opção de linha de comando específico, executando-o com o ** - ajuda ** ou ** - h ** argumento.
Opção `` comando call``¶
# py4web call -h
Usage: py4web.py call [OPTIONS] APPS_FOLDER FUNC
Call a function inside apps_folder
Options:
--args TEXT Arguments passed to the program/function [default: {}]
-help, -h, --help Show this message and exit.
Opção `` comando new_app``¶
# py4web new_app -h
Usage: py4web.py new_app [OPTIONS] [APPS_FOLDER] APP_NAME
Create a new app copying the scaffolding one
Options:
-s, --scaffold_zip TEXT Path to the zip with the scaffolding app
-help, -h, --help Show this message and exit.
Presentemente, dá um erro em instalações binários e de instalação de origem (no local), porque eles perdem o arquivo zip de ativos.
Opção `` comando run``¶
# py4web run -h
Usage: py4web.py run [OPTIONS] [APPS_FOLDER]
Run all the applications on apps_folder
Options:
-Y, --yes No prompt, assume yes to questions [default:
False]
-H, --host TEXT Host name [default: 127.0.0.1]
-P, --port INTEGER Port number [default: 8000]
-p, --password_file TEXT File for the encrypted password [default:
password.txt]
-w, --number_workers INTEGER Number of workers [default: 0]
-d, --dashboard_mode TEXT Dashboard mode: demo, readonly, full, none
[default: full]
--watch [off|sync|lazy] Watch python changes and reload apps
automatically, modes: off, sync, lazy
[default: off]
--ssl_cert PATH SSL certificate file for HTTPS
--ssl_key PATH SSL key file for HTTPS
-help, -h, --help Show this message and exit.
Se você quiser py4web para recarregar automaticamente uma aplicação sobre quaisquer alterações nos arquivos desse aplicativo, você pode:
para recarregamento imediato (sync-modo): `` py4web prazo –watch = sync``
para recarregar em qualquer primeira solicitação de entrada para a aplicação foi alterada (de modo lento): `` py4web prazo –watch = lazy``
Opção `` comando set_password``¶
# py4web set_password -h
Usage: py4web.py set_password [OPTIONS]
Set administrator's password for the Dashboard
Options:
--password TEXT Password value (asked if missing)
-p, --password_file TEXT File for the encrypted password [default:
password.txt]
-h, -help, --help Show this message and exit.
Se o `` –dashboard_mode`` não é `` demo`` ou `` None``, cada vez py4web é iniciado, ele pede uma senha de uso único para você acessar o painel. Isso é chato. Você pode evitá-lo, armazenando uma senha pdkdf2 hash em um arquivo (por padrão chamado password.txt) com o comando
py4web set_password
Não vou pedir de novo a menos que o arquivo é excluído. Você também pode usar um nome de arquivo personalizado com
py4web set_password my_password_file.txt
e depois pedir py4web para reutilização essa senha em tempo de execução com
py4webt run -p my_password_file.txt apps
Finalmente, você pode criar manualmente o mesmo arquivo com:
$ python3 -c "from pydal.validators import CRYPT; open('password.txt','w').write(str(CRYPT()(input('password:'))[0]))"
password: *****
Opção `` comando setup``¶
# py4web setup -h
Usage: py4web.py setup [OPTIONS] [APPS_FOLDER]
Setup new apps folder or reinstall it
Options:
-Y, --yes No prompt, assume yes to questions [default: False]
-help, -h, --help Show this message and exit.
Esta opção criar uma nova pasta Aplicativos (ou reinstalá-lo). Se necessário, ele irá pedir a confirmação da criação da nova pasta e, em seguida, para copiar todos os aplicativos py4web padrão da pasta de ativos. Atualmente, não faz nada em instalações binários e de instalação de origem (localmente) - para eles você pode copiar manualmente a pasta de aplicações existentes para o novo.
Opção `` comando shell``¶
# py4web shell -h
Usage: py4web.py shell [OPTIONS] [APPS_FOLDER]
Open a python shell with apps_folder added to the path
Options:
-h, -help, --help Show this message and exit.
O shell de Py4web é apenas o shell python regular com aplicativos adicionados ao caminho de pesquisa. Note que o shell é para todos os aplicativos, não um único. Você pode então importar os módulos necessários a partir dos aplicativos que você precisa para acessar.
Por exemplo, dentro de uma concha que puder
from apps.myapp import db
from py4web import Session, Cache, Translator, DAL, Field
from py4web.utils.auth import Auth
Opção `` comando version``¶
# py4web version -h
Usage: py4web.py version [OPTIONS]
Show versions and exit
Options:
-a, --all List version of all modules
-h, -help, --help Show this message and exit.
Com o * -a * opção você vai ter a versão de todos os módulos python disponíveis também.
Implantação na nuvem¶
Implantação em gcloud (aka Google App Engine)¶
Entrada no console do gcloud (https://console.cloud.google.com/) e criar um novo projeto. Você vai obter um ID de projeto que se parece com “{project_name} - {number}”.
Em seu sistema de arquivos local fazer uma nova pasta de trabalho e cd para ele:
mkdir gae
cd gae
Copie os arquivos de exemplo de py4web (supondo que você tem a fonte de github)
cp /path/to/py4web/development_tools/gcloud/* ./
Copiar ou ligar simbolicamente o seu `` apps`` pasta para a pasta gae, ou talvez fazer novos aplicativos pasta que contém um `` __init vazio __. Py`` e ligar simbolicamente os aplicativos individuais que você deseja implantar. Você deve ver os seguintes arquivos / pastas:
Makefile
apps
__init__.py
... your apps ...
lib
app.yaml
main.py
Instale o Google SDK, py4web e configure a pasta de trabalho:
make install-gcloud-linux
make setup
gcloud config set {your email}
gcloud config set {project id}
(Substitua {seu email} sua conta do Google e-mail e {id projeto} com o ID de projeto obtida de Google).
Agora cada vez que você deseja implantar seus aplicativos, basta fazer:
make deploy
Você pode querer personalizar o Makefile e app.yaml para atender às suas necessidades. Você não deve precisar editar `` main.py``.
Implantação em PythonAnywhere.com¶
Assista ao vídeo: https://youtu.be/Wxjl_vkLAEY e siga o tutorial detalhado sobre https://github.com/tomcam/py4webcasts/blob/master/docs/how-install-source-pythonanywhere.md. O script bottle_app.py é em `` py4web / deployment_tools / pythonanywhere.com / bottle_app.py``