A. python使用Flask框架獲取用戶IP地址的方法
主要介紹了python使用Flask框架獲取用戶IP地址的方法,實例分析了Python使用Flask框架remote_addr獲取IP的`技巧,非常具有實用價值,需要的朋友可以參考下。
下面的代碼包含了html頁面和python代碼,非常詳細,如果你正使用Flask,也可以學習一下最基本的Flask使用方法。
python代碼如下:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
from flask import Flask, render_template, request
# Initialize the Flask application
app = Flask(__name__)
# Default route, print user's IP
@app.route('/')
def index():
ip = request.remote_addr
return render_template('index.html', user_ip=ip)
if __name__ == '__main__':
app.run(
host="0.0.0.0",
port=int("80")
)
html代碼如下:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<!DOCTYPE html>
<html lang="en">
<head>
<link href="bootstrap/3.0.0/css/bootstrap.min.css"
rel="stylesheet">
</head>
<body>
<p class="container">
<p class="header">
<h3 class="text-muted">How To Get The IP Address Of The User</h3>
</p>
<hr/>
<p>
You IP address is: <strong>{{user_ip}}</strong>
<p class="header">
<h3 class="text-muted">Code to retrieve the IP</h3>
</p>
<hr/>
<pre>
from flask import Flask, render_template, request
# Initialize the Flask application
app = Flask(__name__)
# Default route, print user's IP
@app.route('/')
def index():
ip = request.remote_addr
return render_template('index.html', user_ip=ip)
</pre>
</p>
</p>
</body>
</html>
希望本文所述對大家的Python程序設計有所幫助。
B. python爬蟲簡單問題,HTML對象的定位問題
這里有各種策略用於定位網頁中的元素(locate elements),你可以選擇最適合的方案,Selenium提供了一下方法來定義一個頁面中的元素:
find_element_by_id
find_element_by_name
find_element_by_xpath
find_element_by_link_text
find_element_by_partial_link_text
find_element_by_tag_name
find_element_by_class_name
find_element_by_css_selector
find_elements_by_name
find_elements_by_xpath
find_elements_by_link_text
find_elements_by_partial_link_text
find_elements_by_tag_name
find_elements_by_class_name
find_elements_by_css_selector
除了上面給出的公共方法,這里也有兩個在頁面對象定位器有用的私有方法。這兩個私有方法是find_element和find_elements。
常用方法是通過xpath相對路徑進行定位,同時CSS也是比較好的方法。舉例:
[html]view plain
<html>
<body>
<formid="loginForm">
<inputname="username"type="text"/>
<inputname="password"type="password"/>
<inputname="continue"type="submit"value="Login"/>
<inputname="continue"type="button"value="Clear"/>
</form>
</body>
<html>
[python]view plain
username=driver.find_element_by_xpath("//form[input/@name='username']")
username=driver.find_element_by_xpath("//form[@id='loginForm']/input[1]")
username=driver.find_element_by_xpath("//input[@name='username']")
二. 操作元素方法
在講述完定位對象(locate elements)之後我們需要對該已定位對象進行操作,通常所有的操作與頁面交互都將通過WebElement介面,常見的操作元素方法如下:
clear 清除元素的內容
send_keys 模擬按鍵輸入
click 點擊元素
submit 提交表單
舉例自動訪問FireFox瀏覽器自動登錄163郵箱。
[python]view plain
fromseleniumimportwebdriver
fromselenium.webdriver.common.keysimportKeys
importtime
#Login163email
driver=webdriver.Firefox()
driver.get("")
elem_user=driver.find_element_by_name("username")
elem_user.clear
elem_user.send_keys("15201615157")
elem_pwd=driver.find_element_by_name("password")
elem_pwd.clear
elem_pwd.send_keys("******")
elem_pwd.send_keys(Keys.RETURN)
#driver.find_element_by_id("loginBtn").click()
#driver.find_element_by_id("loginBtn").submit()
time.sleep(5)
assert""indriver.title
driver.close()
driver.quit()
三. WebElement介面獲取值
通過WebElement介面可以獲取常用的值,這些值同樣非常重要。
size 獲取元素的尺寸
text 獲取元素的文本
get_attribute(name) 獲取屬性值
location 獲取元素坐標,先找到要獲取的元素,再調用該方法
page_source 返回頁面源碼
driver.title 返回頁面標題
current_url 獲取當前頁面的URL
is_displayed() 設置該元素是否可見
is_enabled() 判斷元素是否被使用
is_selected() 判斷元素是否被選中
tag_name 返回元素的tagName
C. python pandas讀取表格網頁顯示效果如圖,怎麼把邊框設置成實線
您好,在html代碼中添加如下代碼:
<html>
<head>
<link href="/static/css/tb.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h1>學生信息表</h1>
<div name=mt>{table_html}</div>
</body>
</html>
另外創建一個static目錄,在該目錄下再創建一個css目錄,然後創建一個tb.css文件,以下為文件內容:
table{
border-collapse:collapse;
}
th,td{
border:blue solid 1px;
padding:5px 10px;
}
當你再訪問網頁時,顯示的表格就是實線了
D. python後端開發需要學什麼
第一階段:Python語言基礎
主要學習Python最基礎知識,如Python3、數據類型、字元串、函數、類、文件操作等。階段課程結束後,學員需要完成Pygame實戰飛機大戰、2048等項目。
第二階段:Python語言高級
主要學習Python庫、正則表達式、進程線程、爬蟲、遍歷以及MySQL資料庫。
第三階段:Pythonweb開發
主要學習HTML、CSS、JavaScript、jQuery等前端知識,掌握python三大後端框架(Django、 Flask以及Tornado)。需要完成網頁界面設計實戰;能獨立開發網站。
第四階段:Linux基礎
主要學習Linux相關的各種命令,如文件處理命令、壓縮解壓命令、許可權管理以及Linux Shell開發等。
第五階段:Linux運維自動化開發
主要學習Python開發Linux運維、Linux運維報警工具開發、Linux運維報警安全審計開發、Linux業務質量報表工具開發、Kali安全檢測工具檢測以及Kali 密碼破解實戰。
第六階段:Python爬蟲
主要學習python爬蟲技術,掌握多線程爬蟲技術,分布式爬蟲技術。
第七階段:Python數據分析和大數據
主要學習numpy數據處理、pandas數據分析、matplotlib數據可視化、scipy數據統計分析以及python 金融數據分析;Hadoop HDFS、python Hadoop MapRece、python Spark core、python Spark SQL以及python Spark MLlib。
第八階段:Python機器學習
主要學習KNN演算法、線性回歸、邏輯斯蒂回歸演算法、決策樹演算法、樸素貝葉斯演算法、支持向量機以及聚類k-means演算法。
關於python後端開發需要學什麼的內容,青藤小編就和您分享到這里了。如果您對python編程有濃厚的興趣,希望這篇文章可以為您提供幫助。如果您還想了解更多關於python編程的技巧及素材等內容,可以點擊本站的其他文章進行學習。
E. python+selenium怎麼遍歷一個網頁中class相同的值
獲取標簽內容使用element.attribute()方法獲取dom元素的內容,如:dr = driver.find_element_by_id('tooltip')dr.get_attribute('data-original-title') #獲取tooltip的內容dr.text #獲取該鏈接的text獲取標簽屬性link=dr.find_element_by_id('tooltip')link.value_of_css_property('color') #獲取tooltip的CSS屬性color的屬性值link.find_element_by_tag_name('h3').value_of_css_property('font') #獲取h3的CSS屬性font的屬性值獲取標簽狀態是否顯示:使用element.is_displayed()方法是否存在:使用find_element_by_xxx()方法,捕獲其拋出的異常, 如果存在異常的話則可以確定該元素不存在text_field=dr.find_element_by_name('user').is_enabled() #直接用element.is_enabled()方法判斷button,返回值為true,因為button是使用CSS方法判斷是否有效這並不是真正的方法,需要判斷其class中是否有值為disabled來判斷是否真正處於disabled的狀態dr.find_element_by_class_name('btn').is_enabled()是否被選中:一般判斷表單元素,如radio或checkbox是否被選中,使用element.is_selected()方法radio.is_selected() #判斷是否被選中try:dr.find_element_by_id('none')except:print 'element does not exist'是否有效:即是否為灰化狀態,使用element.is_enabled()狀態print text_field.is_displayed() #判斷是否顯示F. 在pycharm里新建的python項目,包都放在哪裡
#js、css文件屬於靜態文件,放在static文件夾下
#e.g.:
#+your_app
#+others
#+static
#+js
#+jquery-3.2.1.min.js
#+...
#+css
#+main.css
#+...
#然後在html中引用:
#例如:jquery
#<scriptsrc="{%static"js/jquery-3.2.1.min.js"%}"></script>
#引用css:
#<linkrel="stylesheet"type="text/css"href="{%static"css/main.css"%}">
G. python.name是什麼選擇器
基本選擇器。
(7)pythonlinkcss擴展閱讀:
name選擇器_CSS選擇器,屬性相關
1.1.列舉字元串,列表,元組,字典每個常用的五個方法
str:切片,下標,+拼接,in,not in,count計數,endswith以什麼結尾,startswith以什麼開始,
find檢查字元是否在源字元串中,isdigit只包含數字,isalnum數字和字母,upper大寫,lower小寫,
title首字母大寫,isupper是否大寫,len多少位,replace替換,strip,rstrip,lstrip刪除空格,
list:append,del,delete,insert,+,*,切片,下標,嵌套list[1][0],len,max,min,count,pop,
remove,clear,,reverse反轉,sort排序,list轉化
tuple:add,type,del刪除整個元組,len,+,*,in,not in,切片,max,min,tuple轉化
dict:dict['key']訪問value值修改value值,get,len,str,type,pop
2.描述下列常見內置函數的作用可用代碼說明map,zip,filter,sorted,rece
map:會根據提供的函數對指定序列做映射。
先定義一個pow函數,return x ** 2
In [5]: list(map(lambda x: pow(x,2),list(range(5))))
Out[5]: [0, 1, 4, 9, 16]
sorted:與lambda將list的數按照lambda定義的的key值排序
#一個整數列表,要求按照列表中元素的絕對值大小升序排列
In [18]: list1 = [3,5,-4,-1,0,-2,-6]
...: sorted(list1, key=lambda x: abs(x))
...:
Out[18]: [0, -1, -2, 3, -4, 5, -6]
filter(func,seqs):尋找滿足條件的
# list1 = [3,5,-4,-1,0,-2,-6]
In [25]: list(filter(lambda x:x > 0,list1))
Out[25]: [3, 5]
rece(function,seqs)依次對容器內所有元素進行操作,比如相加
#其中rece函數是python中的一個二元內建函數,它可以通過傳給rece中的函數(必須是二元函數)
#**依次**對數據集中的數據進行操作。例如傳給rece的函數是做加法,數據集是list1,那麼rece
#函數的作用就是將數據集中的數據依次相加
# list1 = [3,5,-4,-1,0,-2,-6]
In [30]: rece(lambda x,y:x+y,list1)
Out[30]: -5
zip:反轉打包解包
list1 = [1,2,3,4]
list2 = ["a","b","c","d"]
zipobj1 = zip(list1,list2)
print(dict(zipobj1)) # {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
list3 = [1,2,3,4]
list4 = ["a","b","c","d"]
list5 = ["a2","b2","c2"]
zipobj2 = zip(list3,list4,list5)
print(list(zipobj2)) # [(1, 'a', 'a2'), (2, 'b', 'b2'), (3, 'c', 'c2')]
3.列舉你所知道的面相對象中的__開頭__結尾的方法及作用,越多越好
__init__,__str__列印對象,__del__,__name__名字,__dict__列印對象的屬性k,v形式,
__class__返回一個類的實例,__call__最高級調用,__new__創建新對象
4.寫出form標簽幾個關鍵性的屬性及作用