Python技术分享

深入浅出学习Python

概述

  • 模板由两部分组成:
    • HTML代码
    • 逻辑控制代码:
      • 变量
      • 标签
      • 过滤器
  • **作用:**很便利的生成HTML
  • **优点:**模板的设计实现了业务逻辑与显示的分离,一个视图可以使用任意的模板,一个模板可以被多个视图使用
  • 模板的处理:
    • 加载:根据给定的标识找到对应的模板然后预处理,通常将它编译好放到到内存中
    • 渲染:使用context属性的数据插入模板形成新的字符串
阅读全文 »

概述

  • 作用
    • 接收Web请求并返回web响应
  • 本质
    • 就是一个Python函数,被定义在views.py文件中
  • 响应
    • 可以是一个网页的HTML内容、一个重定向、数据、一个404错误等等
  • 过程
    过程图
阅读全文 »

概述

  • Django对各种数据库都提供了良好的支持
  • Django为这些数据库提供了统一的调用接口API,我们可以根据业务需求选择使用不同的数据库

配置MySQL

  • DATABASES 做如下修改

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': '数据库名',
    'USER': '用户名',
    'PASSWORD': '密码',
    'HOST': '主机',
    'PORT': '端口'
    }
    }
阅读全文 »

什么是Restful?

  • REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。
  • Restfull一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
  • 满足rest这种架构风格的API就是Restful API
  • Restful接口开发都是围绕资源以及对资源的各种操作展开的
阅读全文 »

各种查询操作

  • 先做准备工作,创建工程
    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
    from flask import Flask
    from flask_script import Manager
    from flask_sqlalchemy import SQLAlchemy
    from flask_migrate import Migrate, MigrateCommand
    import os

    app = Flask(__name__)
    manager = Manager(app)

    base_dir = os.path.abspath(os.path.dirname(__file__))
    db_uri = 'sqlite:///' + os.path.join(base_dir, 'data.sqlite')
    app.config['SQLALCHEMY_DATABASE_URI'] = db_uri
    app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
    db = SQLAlchemy(app)

    migrate = Migrate(app, db)
    manager.add_command('db', MigrateCommand)


    @app.route('/')
    def hello_world():
    return 'Hello World!'


    if __name__ == '__main__':
    manager.run()
阅读全文 »

flask-mail

  • **说明:**是一个邮件发送的拓展库,使用非常简洁

  • 安装:pip install flask-mail

  • 使用:

    1. 先配置:邮件服务器、用户名、密码

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      from flask_mail import Mail, Message
      import os

      # 必须先写配置,然后再创建Mail对象,否则配置无效
      # 邮件服务器
      app.config['MAIL_SERVER'] = os.getenv('MAIL_SERVER') or 'smtp.163.com'
      # 配置用户名
      app.config['MAIL_USERNAME'] = os.environ.get('MAIL_USERNAME') or '16657158725@163.com'
      # 配置邮箱密码
      app.config['MAIL_PASSWORD'] = os.getenv('MAIL_PASSWORD') or '123456'
    阅读全文 »

flash消息

  • 说明:

    • 当用户的状态发生改变时,需要给与提示,警告等信息;通常都是以弹窗的形式出现,指引用户操作。
  • 函数:

    • flash:将指定的内容保存起来,用在视图函数中

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      from flask import Flask, render_template, redirect, url_for, session, flash, get_flashed_messages

      @app.route('/', methods=['GET', 'POST'])
      def index():
      form = NameForm()
      if form.validate_on_submit():
      last_name = session.get('username', None)
      if last_name and last_name != form.name.data:
      flash('大哥,又换签名了?')
      session['username'] = form.name.data
      return redirect(url_for('index'))

      name = session.get('username', None)
      return render_template('form.html', form=form, name=name)
    阅读全文 »

url_for

  • 可以根据视图函数名构造对应的路由地址
  • 带参的路由也可以构造,多出来的参数会自动作为get参数
  • 构造完整(带主机和端口)路由需要制定参数_external=True
阅读全文 »
0%