📜  Flask 中的子域 | Python

📅  最后修改于: 2022-05-13 01:54:41.105000             🧑  作者: Mango

Flask 中的子域 | Python

先决条件:Flask 简介

在本文中,我们将学习如何在 Flask 中设置子域。但首先,让我们了解一下 DNS 和子域等基本知识。

域名系统 (DNS):
域名系统 (DNS) 是用于连接到 Internet 或专用网络的计算机、服务或其他资源的分层和分散命名系统。最突出的是,它将更容易记住的域名转换为使用底层网络协议定位和识别计算机服务和设备所需的数字 IP 地址。
DNS 基本上是使用单词(域名)代替数字(IP 地址)来定位某些东西。例如, 127.0.0.1用于指向本地计算机地址localhost

子域:
子域是属于更大域的域。基本上,它是一种子域,这意味着它是某个父域的一部分。例如, practice.geeksforgeeks.orgcontribute.geeksforgeeks.orggeeksforgeeks.org域的子域,而 geeksforgeeks.org 域又是org顶级域 (TLD) 的子域。
这些与在geeksforgeeks.org/basic/中定义的 TLD 之后的路径不同。

此外,我们将讨论如何使用 Python 的微框架 Flask 在 Web 应用程序中设置端点。

为本地 IP 添加备用域名 –
在编码部分之前,我们必须设置主机文件以便为本地 IP 提供备用名称,以便我们能够在本地测试我们的应用程序。使用 root 权限编辑此文件。

Linux: /etc/hosts 
Windows: C:\Windows\System32\Drivers\etc\hosts

添加这些行以设置备用域名。

127.0.0.1       vibhu.gfg
127.0.0.1       practice.vibhu.gfg

在此示例中,我们将vibhu.gfg视为我们的域名,其中gfg是 TLD。 practice将是我们要在我们的网络应用程序中设置的子域。

设置服务器 -
在应用程序的配置中, SERVER_NAME设置为域名,以及我们打算在其上运行应用程序的端口号。 flask 使用的默认端口是5000 ,所以我们照原样使用。

from flask import Flask
  
app = Flask(__name__)
  
  
@app.route('/')
def home():
    return "Welcome to GeeksForGeeks !"
  
  
if __name__ == "__main__":
    website_url = 'vibhu.gfg:5000'
    app.config['SERVER_NAME'] = website_url
    app.run()

输出:
运行应用程序并注意应用程序运行所在的链接。

在浏览器上测试链接。

添加多个端点 -

  1. 基本:一个端点,扩展至主域上的路径。
  2. practice:practice子域上服务的端点。
  3. 课程:在实践子域的路径上扩展的端点。

Flask 中的子域是使用app.route装饰器中的subdomain参数设置的。

from flask import Flask
  
app = Flask(__name__)
  
  
@app.route('/')
def home():
    return "Welcome to GeeksForGeeks !"
  
  
@app.route('/basic/')
def basic():
    return "Basic Category Articles " \
           "listed on this page."
  
  
@app.route('/', subdomain ='practice')
def practice():
    return "Coding Practice Page"
  
  
@app.route('/courses/', subdomain ='practice')
def courses():
    return "Courses listed " \
           "under practice subdomain."
  
  
if __name__ == "__main__":
    website_url = 'vibhu.gfg:5000'
    app.config['SERVER_NAME'] = website_url
    app.run()

输出: