Python技术分享

深入浅出学习Python

Django简介

  • 是一个开放源代码的Web应用框架,由 Python写成
  • 初次发布于2005年7月,并于2008年9月发布了第一个正式版本1.0
阅读全文 »

什么是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
阅读全文 »

flask-script

  • **说明:**flask终端启动的参数解析器,只需要通过启动传递不同的参数即可完成不同方式的启动
  • 安装:pip install flask-script
  • 使用:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    from flask import Flask
    from flask_script import Manager


    app = Flask(__name__)
    # 创建对象
    manager = Manager(app)

    @app.route('/')
    def index():
    return 'Hello Flask'

    if __name__=="__main__":
    # app.run(debug=True)
    manager.run()

    启动:python manager.py runserver

  • 启动参数
    1
    2
    3
    4
    5
    6
    -? 或 --help     # 查看使用帮助
    -h 或 --host # 指定主机
    -p 或 --port # 指定端口
    --threaded # 开启多线程
    -d # 开启调试模式
    -r # 重新加载

    启动示例:python manager.py runserver -d -r

阅读全文 »

简介

  • Flask被称为微型框架,只提供了一个强健的核心,其他功能全部通过扩展库来实现;也就是说可以根据项目需要量身打造。他适合入门以及高手研究。
  • 组成:WSGI、模板引擎(Jinja2)

WEB工作原理

  • B/S和C/S架构
  • B/S架构工作原理
    • 客户端(浏览器)<=>WEB服务器(nginx)<=>WSGI(uWSGI)<=>Python(flask)<=>数据路(MySQL)
    • 说明:Flask框架自带了一个测试服务器,没有考虑性能部署。
阅读全文 »

  • MongoDB是一种流行的NoSQL数据库系统,它使用了灵活的文档导向的模型来存储和管理数据。与传统的关系数据库管理系统(RDBMS)不同,MongoDB不需要固定的表结构,它允许数据记录在没有预先定义模式的情况下被存储。这意味着数据库的记录可以有不同的字段,这对于处理大量异构数据非常有用。
  • MongoDB的数据结构类似于JSON对象,其格式称为BSON(Binary JSON),这种格式支持更丰富的数据类型。MongoDB提供了强大的查询语言,支持复杂的查询、索引、聚合操作等。它还具有高可扩展性,可以通过分片等技术实现水平扩展,支持大规模的数据存储和处理。
  • MongoDB最初是用C++语言编写的。C++以其性能优势和系统级编程能力被广泛用于开发数据库系统,这使得MongoDB可以高效地处理数据操作和内存管理。尽管MongoDB的核心是用C++编写的,但它也支持多种语言的驱动,例如Python、Java、Node.js等,开发者可以使用这些驱动在不同的应用程序中与MongoDB交互。
  • MongoDB 文档
阅读全文 »
0%