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标签几个关键性的属性及作用