
有兴趣的请加船长公众号:自动化测试实战
先和大家强调一个发邮件的问题
# coding: utf-8 import smtplib
from email.mime.text import MIMEText mail_host = 'smtp.163.com'
receivers = ['31abc@qq.com','72abc@qq.com']
password = '授权码'
sender = 'warrior_meng08@163.com'
msg = MIMEText('Python 发邮件', 'plain', 'utf-8')
msg['From'] = sender
msg['To'] = ';'.join(receivers)
msg['Subject'] = '主题'
try:
server = smtplib.SMTP()
server.connect(mail_host, 25)
server.login(sender, password)
server.sendmail(sender, receivers, msg.as_string())
server.close()
print '发送成功'
except smtplib.SMTPException:
print '无法发送'
当我们发送给多人时,就是receivers
是多人时,在msg['To']
这里必须传';'.join(receivers)
,你可以直接像船长上面代码那样写,这样就不会有太多receiver
弄混了;第二点就是sendmail
方法必须传list
类型的数据,大家看到上面代码里我sendmail
的第二个参数是receivers
,这是一个list
,这样才能使收件的所有人都能收到邮件,如果sendmail
传的不是list
,就会导致只有第一个收件人可以收到邮件,而后面的人收不到邮件。以上代码已经测试通过,大家可以直接复制拿过去。
好,今天我们来讲flask的控制语句。说起控制语句无非是if
和for
这种:
flaskDemo.py
# coding: utf-8 from flask import Flask, render_template app = Flask(__name__) # type: Flask
app.debug = True @app.route('/')
def login():
context = {
"user": {
"name": "Warren",
"age": 18,
"gender": 'male'
}
} return render_template('index.html', **context) if __name__ == '__main__':
app.run()
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>控制语句</title>
</head>
<body>
{# 如果姓名name是Warren,就打印名字,否则打印其他信息 #}
{% if user.name == "Warren" %}
<p>用户名是Warren</p>
{% else %}
<p>用户名不是Warren</p>
{% endif %}
</body>
</html>
for循环
python知识补充
遍历字典
context = {
"users": [
{
"name": "Warren",
"age": 18,
"gender": 'male'
},
{
"name": "Captain",
"age": 20
}
],
"groups":
{
"math": "perfect",
"Chinese": "Great"
}
} # 遍历字典的key和value
for key, value in context.iteritems():
print key, value # 遍历字典的key
for key in context.iterkeys():
print key # 遍历字典的value
for value in context.itervalues():
print value
如果你要遍历字典的key
和value
,那么in
后面就要写自点名.iteritems()
,这样就会遍历出字典的全部key
和对应的value
;如果单独遍历key
或者value
,那么就要写字典名.iterkeys()
或者字典名.itervalues()
。
flaskDemo.py
# coding: utf-8 from flask import Flask, render_template app = Flask(__name__) # type: Flask
app.debug = True @app.route('/')
def login():
context = {
"users": [
{
"name": "Warren",
"age": 18,
"gender": 'male'
},
{
"name": "Captain",
"age": 20
}
],
"groups":
{
"math": "perfect",
"Chinese": "Great"
}
} return render_template('index.html', **context) if __name__ == '__main__':
app.run()
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>控制语句</title>
</head>
<body>
{# 如果姓名name是Warren,就打印名字,否则打印其他信息 #}
{% if users[0].name == "Warren" %}
<p>{{ users[0].name }}</p>
<p>用户名是Warren</p>
{% else %}
<p>用户名不是Warren</p>
{% endif %} {# for循环 #}
<h3>遍历列表</h3>
<table>
<thead>
<th>姓名</th>
<th>年龄</th>
</thead>
<tbody>
{% for user in users %}
<tr>
<td>{{ user.name }}</td>
<td>{{ user.age }}</td>
</tr>
{% endfor %}
</tbody>
</table> <h3>遍历字典</h3>
{% for key, value in groups.items() %}
<p>key: {{ key }};value: {{ value }}</p>
{% endfor %}
</body>
</html>
上面html
代码中使用了table
标签,大家先这么照着写,说实话我也不太明白,船长会尽快给大家讲一下这个table
标签的使用的。
总结
所有的控制语句都是通过{% statement %}
来使用,并且都有一个结束语句{% endstatement %}
,Python中的>, <, !=, >=等判断都可以用在if里
,也可以通过and, or,not
等进行逻辑判断。
最后执行上面代码: