Todos nós fazemos isso e se você é iniciante, precisa levar em consideração os seguintes recursos de inscrição por e-mail.
Um sistema sólido de inscrição por e-mail é essencial para aplicativos da web, boletins informativos, downloads de brindes, convites para grupos privados e geração de leads. Não vamos depender do uso de serviços de terceiros, como Auth0, Facebook ou Google, para ter acesso ao seu aplicativo. Mantenha seus dados de aplicativos!
Para começar, você deve ter alguma experiência em Python porque usaremos o framework Flask com um banco de dados MySQL. Isso será mais divertido do que usar o Wordpress, o CMS mais popular. Você teria que pagar por algum plugin do Wordpress para ter a mesma capacidade de uma extensão Flask gratuita. Eu desenvolvi anteriormente em ambos e prefiro Python Flask para aplicativos da web, embora o Wordpress seja muito capaz de criar aplicativos da web.
Cada trecho de código será explicado e incluirá alguns comentários no código. Caso você não tenha criado o registro do usuário ou não conheça o funcionamento interno, descreverei os detalhes para você. Aqui está um resumo dos recursos que implementaremos conforme declarado no primeiro parágrafo:
Um endereço de e-mail válido pode ser verificado analisando a string de entrada do usuário usando uma expressão regular ou uma extensão Flask. Não permitiremos hacks de texto aleatório nem de injeção de SQL.
Prevenção de bots pode ser feita com um campo oculto que não é mostrado ao usuário, mas geralmente é preenchido automaticamente por bots que rastreiam formulários de inscrição vulneráveis.
método de aceitação dupla exige que o destinatário dê permissão para que você envie um e-mail para ele, recebendo um link de validação em sua caixa de entrada. Isso é usado principalmente para evitar que outra pessoa use seu endereço de e-mail. Isso também evita que usuários de teste simplesmente se inscrevam e abandonem suas contas.
Crie um diretório de trabalho:
mkdir signup cd signupCrie seu ambiente Python usando python3 -m venv signup ou conda create -n signup python3. Eu prefiro conda.
Crie uma tabela MySQL para armazenar seus usuários. O campo validado é para double opt-in:
mkdir signup cd signupInstalar dependências:
pip flask flask-mail seguro SQLAlchemy Flask-WTF Flask-SQLAlchemy mysql-connector-python
Alternativamente, você pode ter o mesmo listado em um arquivo requirements.txt e executar pip install -r requisitos.txt
mkdir signup cd signupInsira seus próprios dados de configuração do servidor usando estas linhas:
mkdir signup cd signupEm última análise, você deve ter suas informações de configuração em um arquivo .env.
A próxima seção usa a estrutura ORM do SQLAlchemy para consultar o banco de dados para você. Observe que
o nome da classe deve corresponder ao nome da tabela do banco de dados, caso contrário, você receberá um erro. O db.model representa as configurações da sua tabela que incluem o nome da coluna, seu tipo, comprimento, chave e valor nulo:
mkdir signup cd signupSe você ainda não criou manualmente a tabela do banco de dados MySQL, você pode fazê-lo com este código Flask diretamente após a classe User code block:
mkdir signup cd signupPara resumir este tutorial, estamos ignorando a página de índice ou o nome que você gostaria de chamar de página inicial do seu aplicativo e apenas mostrando a página de inscrição usando a função decoradora do Python para a rota da página:
mkdir signup cd signupAntes de adicionar o formulário de inscrição em HTML, vamos completar o back-end adicionando a rota para validar o recurso de aceitação dupla. Esta rota usa a variável s que criamos anteriormente, que gera o token secreto sensível ao tempo. Consulte a documentação para obter detalhes
A idade máxima são segundos antes do link expirar, portanto, neste caso, o usuário tem 20 minutos para confirmar seu endereço de e-mail.
mkdir signup cd signupAgora, para a instrução principal onipresente que diz ao Python para executar o script se o arquivo estiver sendo executado diretamente (em oposição a um módulo importado):
mkdir signup cd signupAntes de concluirmos este código de back-end, ainda precisamos do html de front-end para a entrada do usuário. Faremos isso com o modelo Jinja integrado do Flask. Crie um arquivo chamado templates/signup.html cujo nome deve corresponder à rota que você criou anteriormente em app.py. Por padrão, Jinja usa o diretório /templates para os arquivos html. Você pode alterar essa configuração, mas para este tutorial usaremos o diretório /templates do aplicativo.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3