Python技术分享

深入浅出学习Python

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 文档
阅读全文 »

版本库管理历史

  • 黑暗时期 —> 集中式版本控制 —> 分布式版本控制
    • 黑暗时期:论文定稿 —> 论文定稿2 —> 论文定稿 19.04.12 —> 论文最终版 —> 论文最最终版 —> 打死都不改 —>…
    • 集中式版本控制:最早的CVS,后起之秀SVN
    • 分布式版本控制:BitKeeper、GIT
    • 2008年GitHub正式运营,之后Git迅速发展
阅读全文 »

  • Redis(Remote Dictionary Server,远程字典服务)是一个开源的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串(strings)、列表(lists)、集合(sets)、有序集合(sorted sets)、哈希表(hashes)、位图(bitmaps)、超日志(hyperloglogs)以及地理空间(geospatial)索引半径查询。
  • Redis 通常用于需要快速响应且数据集不是非常大(能够适合存储在内存中)的场景。例如,Web 应用中的会话缓存、数据库查询缓存、任务队列等场景中,Redis可以提供快速的数据访问功能。此外,Redis还支持发布/订阅(pub/sub)模式,广泛应用于消息传递系统。
阅读全文 »

MySQL 简介

MySQL是一个流行的开源关系型数据库管理系统(RDBMS),它使用结构化查询语言(SQL)进行数据库管理。MySQL是基于客户端/服务器模型的数据库解决方案,其中多个客户端可以同时连接到服务器上的数据库。

阅读全文 »

Shell 简介

  • Linux Shell 是 Linux 操作系统中用于与内核进行交互的命令行界面。它是用户与操作系统之间的中介,允许用户通过输入指令(命令)来执行操作,如文件管理、程序执行、设备控制等。
  • Shell 本身是一个程序,当用户登录到 Linux 系统时,它提供了一个用户会话,并解释用户输入的命令。Linux Shell 同时也是一种脚本语言,可以编写脚本(一系列的命令)来自动化常见的任务,提高工作效率。
阅读全文 »

压缩解压

  • zip/unzip,文件后缀为zip

    1
    2
    压缩:zip 123.zip *.txt
    解压:unzip 123.zip
    常见参数 释义 示例
    -q 不显示指令执行过程 zip -q 123.zip *.txt
    -r 递归处理,将指定目录下的所有文件和子目录一并处理 zip -r 123.zip 123
    -d 从压缩文件内删除指定的文件 zip -d 123.zip 1.txt
    -F 尝试修复已损坏的压缩文件 zip -F 123.zip
    -h 在线帮助 zip -h
    阅读全文 »
0%