摘要:附錄內建檢查器對象是否可調用對象是否已定義是否可以被整除是否已轉義是否為奇數是否可以循環是否為小寫是否為是否為數字是否為偶數是否與為同一個對象實例是否為序列是否是字符串是否未定義是否為大寫
flask基礎實現不再贅述,不了解的同學可以通過官方文檔學習
http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-iii-web-forms
在forms.py中添加如下代碼:
# -*- coding: utf-8 -*- from flask.ext.wtf import Form from wtforms import StringField from wtforms.validators import DataRequired class WhoisForm(Form): myDomain = StringField("myDomain", validators=[DataRequired()])
很簡單,跟官方教程差不多
Step 2 創建Whois信息模板新建一個whois.html文件,代碼如下:
GetWhois
這里只為做實例,所以沒有設置繼承模板,如果是一個整體的項目,建議通過繼承實現,保持風格一致。
實例通過whois模塊得到相關信息,返回的結果是一個字典,如圖所示
所以用了以下jinja2語句將信息輸出到網頁上
{{ key }} : | {{ info[key] }} |
在views.py中添加實現代碼
@app.route("/whois",methods=["GET","POST"]) def Whois(): form = WhoisForm() if form.validate_on_submit(): info_dict = GetWhois.MyWhois(form.myDomain.data) return render_template("whois.html",form = form, info = info_dict) return render_template("whois.html",form = form)
其中GetWhois.MyWhois函數的實現,在GetWhois.py中實現,具體為
#!/usr/bin/env python # -*- encoding: utf-8 -*- import whois def MyWhois(mydomain): try: w = whois.whois(mydomain) return w except Exception,e: print Exception,e return {}
ok,程序到這里基本可以實現需要的內容了,查詢效果如圖
我們看到輸出到網頁時,如status、domain_name等字段的值是列表,是否可以將其進一步分解輸出呢,答案是可行的。
我們可以利用jinja2的內建檢查器來判斷參數是否為list,若是,則分解打印
于是將whois.html修改成
{{ key }} : |
{% if info[key] is sequence %}
{% for value in info[key] %}
{{ value }} {% endfor %} {% else %} {{ info[key] }} {% endif %} |
執行后看效果圖,What The Fuck!!!字符串也被分解打印了。
再次修改,判斷為字符串,則先打印,然后再去判斷是否為List
{{ key }} : |
{% if info[key] is string %}
{{ info[key] }}
{% elif info[key] is sequence %}
{% for value in info[key] %}
{{ value }} {% endfor %} {% else %} {{ info[key] }} {% endif %} |
終于乖乖的出來了我們期盼的結果
實例寫完后,目錄結構為
|____app | |______init__.py | |____forms.py | |____GetWhois.py | |____static | | |____images | | | |____logo.png | |____templates | | |____whois.html | |____views.py |____config.py |____run.py |____tmp
學習了flask的form基本實現,jinja2的部分語法。
附錄 內建檢查器:
*"""callable(object)""" 對象是否可調用 *"""defined(value)""" 對象是否已定義 *"""divisibleby(value, num)""" value是否可以被num整除 *"""escaped(value)""" 是否已轉義 *"""even(value)""" 是否為奇數 *"""iterable(value)""" 是否可以循環 *"""lower(value)""" 是否為小寫 *"""none(value)""" 是否為None *"""number(value)""" 是否為數字 *"""odd(value)""" 是否為偶數 *"""sameas(value, other)""" value是否與other為同一個對象實例 *"""sequence(value)""" 是否為序列 *"""string(value)""" 是否是字符串 *"""undefined(value)""" 是否未定義 *"""upper(value)""" 是否為大寫
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/38034.html
摘要:代碼需要的字段模仿獲取西部數碼信息域名代理模擬執行代碼解析出錯添加代理解析出錯查詢西部數碼失敗請求西部數碼失敗生成失敗提取西部數碼數據使用結果另外這個域名是我的,有意出售。 目標對象和過程 爬取的網站是西部數碼,該網站在https://www.west.cn/web/whois...可以查詢whois信息,通過chrome調試知道,數據是從接口:https://www.west.cn/...
摘要:功能介紹將從以下幾個方面展開滲透測試前的信息收集工作包括域名的解析結果記錄是電子郵件系統中的郵件交換記錄的一種另一種郵件交換記錄是記錄在協議中或記錄在協議中。的方向查詢,即通過指向的反查相關的域名信息唯一可能有點缺憾的是沒有加入暴力遍歷。 功能介紹 instarecon將從以下幾個方面展開滲透測試前的信息收集工作 1. DNS (direct, PTR, MX, NS) looku...
閱讀 2511·2021-11-18 10:02
閱讀 1976·2021-11-09 09:45
閱讀 2399·2021-09-26 09:47
閱讀 1010·2021-07-23 10:26
閱讀 1063·2019-08-30 15:47
閱讀 3356·2019-08-30 15:44
閱讀 957·2019-08-30 15:43
閱讀 881·2019-08-29 13:50