• flask第二十五篇——控制语句


    有兴趣的请加船长公众号:自动化测试实战

    先和大家强调一个发邮件的问题

    # 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的控制语句。说起控制语句无非是iffor这种:

    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

    如果你要遍历字典的keyvalue,那么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等进行逻辑判断。

    最后执行上面代码:

  • 相关阅读:
    Lync二次开发
    Socket 一对多通信
    DBImport V3.1 数据互导工具及文档生成器更新发布
    Sql学习第六天——SQL 巩固练习(用到了前几天几个知识点)
    文件监控
    Google Protocol Buffers 入门
    [原]常用Linux命令总结[Thx for commandlinefu]
    清理SQL Server日志释放文件空间
    ASP.NET MVC动态二级域名及ASP.NET管道机制
    搜索引擎——JobSearch简介
  • 原文地址:https://www.cnblogs.com/captainmeng/p/8794941.html
Copyright © 2020-2023  润新知