Subdomínios de frascos – comunidade de desenvolvimento
Neste tutorial, vou mostrar como trabalhar com subdomínios em seu aplicativo de frasco. Mas primeiro … o que é um subdomínio? Um subdomínio é uma extensão simples do domínio principal; É quase como um nome de usuário, mas no início disso. Por exemplo, o mais comumente usado na Web é www, onde o site principal de um produto é frequentemente hospedado. Outro exemplo de subdomínio é music.apples.com, onde música. É um subdomínio dos subdomínios Apple.com no frasco de frascos pode funcionar facilmente com subdomínios, e uma extensão de terceiros não é necessária para isso. Yay!. Você pode fazer isso usando o NGINX, mas o Nginx está fora do intervalo deste tutorial. Preparando o ambiente primeiro, precisamos criar um novo ambiente Python para começar a trabalhar com o Flask e atualizar nossos hosts Local File. Crie uma nova pasta: MKDIR Subdomínios de frascos Entre na pasta e inicie um Python VirtualEnv dentro disso. Python -M Venv Venv Ativa seu Virtualenv. Faça um novo arquivo chamado main.py. Além disso, a pasta de modelos. Abra seu arquivo hosts e adicione o domínio da seguinte forma. 127.0.0.1 Superdomain.com 127.0.0.1 admin.superdomain.com 127.0.0.1 user1.superdomain.com Digite o modo de saída de tela cheia de tela cheia se você não souber onde o arquivo hosts está localizado. Para o Linux, vá para etc/hosts e, para o Windows, execute o bloco de notas como administrador, siga o próximo caminho C: \ Windows \ System32 \ Drivers \ etc, aqui está o arquivo hosts localizado no Windows e alterar o filtro de pesquisa de arquivos de texto para todos os arquivos e agora você pode abrir seu arquivo hosts e editá -lo. Um aplicativo de frasco mínimo agora, em nosso arquivo main.py, vamos criar uma instância de frasco e adicionar algumas rotas. Do Flask Flask, render_template app = Flask (__ name__) app.config[‘SERVER_NAME’] = ‘Superdomain.com:5000’ @App.Route (‘/’) def index (): context = {‘page_title’: ‘home’} retorna render_template (‘sity/index.html.jinja’, ** contexto) insira o modo de tela completa exite agora que temos nosso ambiente e nosso trabalho mínimo. Nosso primeiro subdomínio em nosso arquivo main.py, precisamos adicionar uma nova rota e definir o parâmetro de subdomínio no decorador @app.route (‘/’, subdomain = ‘admin’) def admin (): context = {‘Page_title’: ‘admin Page’} retornar render_template (‘ex -index. subdomínios definidos no arquivo hosts. Vamos executar o servidor. Flask -A Main: App -Debug Run Digite Modo FullScreen Sair Agora, podemos acessar a página principal. Se visitarmos admin.superdomain.com:5000, podemos ver a página de administrador … Espere, há um problema. A rota do administrador está renderizando o modelo do site. O que está errado? Corrigindo o problema no Flask, precisamos definir mais uma coisa: o parâmetro subdomain_matching. No frasco de importação de frascos, render_template app = Flask (__ name__, subdomain_matching = true) Digite o modo de saída de tela cheia, o modo de tela cheia interrompa o servidor e execute -o novamente. Desta vez, conseguimos acessar a rota do índice de subdomínio. E … sim !!! Agora, nossas rotas estão funcionando bem. Trabalhar com plantas Flask tem o conceito de plantas, o que nos permite tornar nosso aplicativo modular quando precisamos de mais flexibilidade e uma estrutura melhor para projetos maiores. O objeto Blueprint também pode definir um subdomínio sem passá -lo em cada nova rota. Isso é ótimo se você estiver construindo uma grande aplicação. Vamos modificar nosso aplicativo atual. Primeiro, vamos criar uma pasta de aplicativos. A pasta do aplicativo conterá todo o novo código e o arquivo main.py servirá como nosso ponto de entrada. Dentro da pasta do aplicativo Adicione o arquivo __init__.py e a pasta Blueprints com os seguintes arquivos: __init__.py, admin.py, site.py e tenant.py.t deve ser assim: App | -eRen MOMEPRITS | -Admin.py | -Site.-tenAnt.pulpypy |-__PIPS | -pypy.pypy.py. Os planos para cada módulo e definem o parâmetro de subdomínio, como segue … # Blueprints/admin.py mod = Blueprint (‘admin’, __name__, subdomain = ‘admin’) @mod.route (‘/) def index (): retornar render_template (‘ admin/index.hpy (‘) __name__) @mod.route (‘/’) def Índice: return render_template (‘site/index.html.jinja’) # blueprints/tenant.py mod = blueprint (‘inquilino’, __names, strplyain: ” ‘) @mod.routte (‘/’) def Índice (Subdomin ‘inquilino/index.html.jinja’ return render_template (template_name, subdomínio = subdomínio) Digite o modo de saída da tela cheia de tela cheia, definimos o subdomínio inquilino para ser dinâmico e passá -lo para a flask de flask, a flast de flash. Flask (__ name__, subdomain_matching = true) app.config[‘SERVER_NAME’] = ‘Superdomain.com:5000’ App.register_bluePrint (admin.mod) app.register_bluePrint (site.mod) app.register_blueprint (tenant.mod) Digite o modo de tela completa Sair do modo de tela cheia se visitarmos o user1.superdomain.com:5000, podemos ver o dinâmico inquilino rota. Subdomínios dinâmicos podem ser úteis em alguns casos, por exemplo, vercel ou o site de cartão postal., Que permite que os usuários hospedem um site usando seu domínio. all_post = posts.get_all_by_telant (tenant_id = tenant.id) retornar render_template (‘inquilino/index.html.jinja’, ** {‘inquilino’: inquilino, ‘postais’: all_post}) digite a tela completa do modo de tela completa no modo de tutorial, o tutorial: ALLS_POSTS}) inserir a tela completa do modo de tela completa do modo de tutorial. Lembre -se, isso está apenas no nível do aplicativo; Você precisará configurar os subdomínios em seus provedores de hospedagem ou nomes de domínio e usar algo como Nginx ao lado do Flask. Espero que você goste deste post e obrigado pela leitura. Vejo você na próxima vez. #Flask#WebDevelopment#Python
Fonte
Publicar comentário