Lets Build - 플라스크와 함께하는 서비스

사용하기에 매우 유용하고 정말 훌륭하고 간단하며 빠른 Flask 웹 사이트를 만들어 봅시다. 이 자습서에서는 Whois 서비스를 구축하고 도메인에 대한 일부 정보를 다시 가져올 것입니다.

Whois service allows you to find all the information about domain name registration, for example, the registration date and age of the domain name, or find contact details of the person or organization owning the domain name of your interest.



시작하겠습니다! 자, 이제 Python이 설치되어 있고 가상 환경을 만드는 방법을 알고 있다고 가정하겠습니다. 그러니 지금 그렇게 하여 터미널을 열도록 하십시오. 먼저 몇 가지 패키지를 설치하고 app.py라는 파일을 만든 다음 따라해 봅시다.

pip3 install python-whois flask


이것이 우리가 필요로 하는 모든 패키지이므로 플라스크 앱을 만들고 두 개의 엔드포인트를 만들고 HTML로 일부 템플릿을 반환하겠습니다.

from flask import Flask, render_template, jsonify, request
import whois
import datetime

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/search', methods=['POST'])
def search():
    url = request.form['url']
    w = whois.whois(url)
    w.expiration_date  # dates converted to datetime object
    datetime.datetime(2013, 6, 26, 0, 0)
    w.text
    return render_template('search.html', url=url, record=w)

if __name__ == '__main__':
    app.run(debug=True, port=8000, host='127.0.0.1')


무슨 일이 일어나고 있는지 분석해 봅시다.

여기에서 모든 패키지를 가져옵니다.

from flask import Flask, render_template, jsonify, request
import whois
import datetime


그런 다음 플라스크 인스턴스를 만듭니다.

app = Flask(__name__)


여기에서 홈페이지 경로를 만들고 템플릿 Index.html을 반환합니다.

@app.route('/')
def index():
    return render_template('index.html')


자, 이것이 중요한 것입니다. 이것이 whois 패키지에서 데이터를 다시 가져오는 것입니다. 따라서 먼저 양식 입력을 수락할 수 있는지 확인해야 하므로 앱 경로에 메서드 배열을 추가합니다. 그런 다음 함수를 정의하고 그 안에서 가장 먼저 하는 일은 변수를 만들고 양식 입력을 제공하는 것입니다.

그런 다음 whois 패키지를 호출하고 새 변수를 여기에 전달합니다. 그런 다음 날짜를 전달하고 DateTime 패키지를 사용하여 다음 비트에서 응답을 받아 URL 정보를 표시하는 데 사용할 수 있습니다.

마지막으로 템플릿을 반환하고 해당 템플릿에 URL 및 URL 레코드를 전달합니다.

@app.route('/search', methods=['POST'])
def search():
    url = request.form['url']
    w = whois.whois(url)
    w.expiration_date  # dates converted to datetime object
    datetime.datetime(2013, 6, 26, 0, 0)
    w.text
    return render_template('search.html', url=url, record=w)


마지막으로 dunder 방법이 있고 플라스크 앱을 빌드합니다.

if __name__ == '__main__':
    app.run(debug=True, port=8000, host='127.0.0.1')


그게 우리가 걱정해야 할 파이썬의 전부입니다. 다음 비트는 프런트 엔드이므로 다음 파일에서는 부트 스트랩 4를 사용하므로 가서 다운로드하면 static이라는 파일을 만들어 거기에 모두 넣습니다.

https://getbootstrap.com/docs/4.0/getting-started/introduction/

이제 템플릿이라는 폴더를 하나 더 만들겠습니다. 이 폴더에는 index 및 search라는 두 개의 HTML 파일이 있습니다.

index.html

<!DOCTYPE html>
<html>

<head>
    <title>Who is Flask</title>
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link
        href="https://fonts.googleapis.com/css2?family=Oswald:wght@400;600&family=Poppins:wght@500&family=Roboto:ital,wght@0,300;0,400;1,100;1,400&display=swap"
        rel="stylesheet">
    <link rel="stylesheet" href="../static/bootstrap.min.css">
    <link rel="stylesheet" href="../static/site.css">
</head>

<body>
    <div class="container">
        <div class="row h-100">
            <div class="col-sm-12 my-auto text-center">
                <h1>Who is - Flask</h1>
                <div class="row">
                    <div class="col-3"></div>
                    <div class="col-6">
                        <form action="/search" method="POST">
                            <div class="form-group">
                                <label for="url">Web url</label>
                                <input type="text" class="form-control" id="url"
                                    name="url">
                                <small id="emailHelp" class="form-text text-muted">Web address should be as follows: webscraping.com</small>
                            </div>
                            <button type="submit" class="btn btn-primary">Submit</button>
                        </form>

                 </div>
                </div>
            </div>
        </div>
    </div>
</body>

</html>


search.html

<!DOCTYPE html>
<html>

<head>
    <title>Who is Flask</title>
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link
        href="https://fonts.googleapis.com/css2?family=Oswald:wght@400;600&family=Poppins:wght@500&family=Roboto:ital,wght@0,300;0,400;1,100;1,400&display=swap"
        rel="stylesheet">
    <link rel="stylesheet" href="../static/bootstrap.min.css">
    <link rel="stylesheet" href="../static/site.css">
</head>

<body>
    <div class="container">
        <div class="row h-100">
            <div class="col-sm-12 my-auto text-center">
                <h2 class="mb-2">{{ url }}</h2>
                <br>
                <div class="row">
                    <div class="col-3"></div>
                    <div class="col-6">
                        <ul class="list-group">
                            <li class="list-group-item">Registrar: {{record.registrar}}</li>
                            <li class="list-group-item">Whois Server: {{record.whois_server}}</li>
                            <li class="list-group-item">Name Server 1: {{record.name_servers[0]}}</li>
                            <li class="list-group-item">Name Server 2: {{record.name_servers[1]}}</li>
                            <li class="list-group-item">Email: {{record.emails[0]}}</li>
                            <li class="list-group-item">Name: {{record.name}}</li>
                            <li class="list-group-item">Address: {{record.address}}</li>
                            <li class="list-group-item">City: {{record.city}}</li>
                          </ul>  
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>

</html>


이것이 HTML의 전부이며 search.html 페이지에서 콧수염 태그 내의 코드를 볼 수 있습니다. 이들은 app.py의 검색 기능에서 우리가 보낸 데이터를 레이아웃할 수 있게 해주는 징가 태그입니다.

이제 모든 것이 정렬되었으니 터미널로 가서 멋진 서비스를 사용할 수 있습니다! 다음을 입력하자

python app.py


그리고 하자! 당신은 그것을 가지고 있습니다! 도메인을 추가하고 일부 정보를 다시 가져올 수 있는 작업 후이즈 서비스입니다.

코드를 복제하려면 내 GitHub에서 코드를 가져올 수 있습니다.

https://github.com/GrahamMorbyDev/whois-flask

좋은 웹페이지 즐겨찾기