Bwael's Blog


  • 首页

  • 分类

  • 归档

  • 关于

  • 搜索

基于flask的microBlog开发笔记(四)

发表于 2017-02-11 | 分类于 学习笔记 |

4.用户登录

1.配置

对于登录系统,使用到扩展:Flask-Login。配置情况如下(app/init.py)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#-*- coding:utf-8 -*-


from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
from flask.ext.login import LoginManager


# 初始化flask应用
app = Flask(__name__)
app.config.from_object('config')

# 初始化数据库
db = SQLAlchemy(app)

# 初始化flask-Login
lm = LoginManager()
lm.setup_app(app)

from app import views, models

2.重构用户模型

Flask-Login 扩展需要在我们的 User 类中实现一些特定的方法,但是类如何去实现这些方法却没有什么要求,让我们为 Flask-Login 实现的 User 类(app/models.py)

阅读全文 »

基于flask的microBlog开发笔记(三)

发表于 2017-02-11 | 分类于 学习笔记 |

3.数据库

1.flask中的数据库

  • 数据库迁移,使用 SQLAlchemy-migrate 来跟踪数据库的更新。这只是在开始建立数据库的时候比较花费工作时间,以后就再不用人工进行数据的迁移了。

    1
    2
    $ source flask/bin/activate
    $ pip install SQLAlchemy-migrate
  • 数据库配置,针对我们小型的应用,我们将采用 sqlite 数据库,sqlite 数据库是小型应用的最方便的选择,每一个数据库都是存储在单个文件里,这里对config.py进行再次配置。

    1
    2
    3
    4
    5
    import os
    basedir = os.path.abspath(os.path.dirname(__file__))

    sqlalchemy_database_url = 'sqlite:///' + os.path.join(basedir, 'app.db')
    sqlalchemy_migrate_repo = os.path.join(basedir, 'db_repository')

    sqlalchemy_database_url是 Flask-aqlalchemy 扩展需要的,存储我们数据库文件的路径,sqlalchemy_migrate_repo 是文件夹,存储数据库文件。对init.py文件更新。

    阅读全文 »

基于flask的microBlog开发笔记(二)

发表于 2017-02-10 | 分类于 学习笔记 |

4. flask表单初始化

  • 表单配置
    许多 Flask 扩展需要大量的配置,因此我们将要在 microblog/ 文件夹下创建一个配置文件以至于容易被编辑。这就是我们将要开始的(config.py)
1
2
CSRF_ENABLED = True
SECRET_KEY = 'bawel'

CSRF_ENABLED 配置是为了激活跨站点请求伪造保护,SECRET_KEY 配置仅仅当 CSRF 激活的时候才需要,它是用来建立一个加密的令牌,用于验证一个表单。当你编写自己的应用程序的时候,请务必设置一个很难被猜测到的密钥。当有了配置文件,我们需要告诉 Flask 去读取以及使用它。我们可以在 Flask 应用程序对象被创建后去做,方式如下(app/init.py)

1
2
3
4
5
6
from flask import Flask

app = Flask(__name__)
app.config.from_object('config')

from app import views

  • 用户登录表单

创建一个登录表单,用于用户认证系统。在我们应用程序中支持的登录机制是标准的用户名/密码类型 我们同时在表单上提供一个remember me的选择框,以至于用户可以选择在他们的网页浏览器上种植 cookie ,当他们再次访问的时候,浏览器能够记住他们的登录,编写第一个表单(app/forms.py)

阅读全文 »

基于flask的microBlog开发笔记(一)

发表于 2017-01-09 | 分类于 学习笔记 |

项目地址: https://coding.net/u/bwael/p/micblog/git

1. 开发环境

  • 在linux系统开发
  • 开发语言python,使用框架flask
  • 使用Mysql数据库,初期使用sqlite方便开发

2. 环境配置

1. flask的安装

  • 创建一个全新的实验环境,则安装python虚拟软件管理包virtualenv来创建python的
    独立环境,先更新软件包,在安装pip和虚拟环境virtualenv:

    $ sudo pacman -Syy

    $ sudo pacman -S python-pip python-virtualenv

  • 创建虚拟环境,先创建一个虚拟环境flask,在激活环境,

    $ virtualenv flask

    $ cd flask

    $ source bin/activate

    阅读全文 »

计算机网络笔记01

发表于 2016-09-03 | 分类于 学习笔记 |

概念

计算机网络是通过通信设施将地理上分散的具有自治功能的多个计算机系统互联起来,进行信息交换,实现资源共享、互操作和协同工作的系统。
简明的定义:自治的计算机的互联集合。

OSI参考模型与TCP/IP参考模型

OSI七层网络模型

  1. 应用层(Application
  2. 表示层(Presentation
  3. 会话层(Session
  4. 传输层(Transport
  5. 网络层(Network
  6. 数据链路层(Data Link
  7. 物理层(Physical

TCP/IP四层概念模型

  1. 应用层(对应 应用层、表示层、会话层
  2. 传输层(对应 传输层
  3. 网络层(对应 网络层
  4. 网络接口层(对应 数据链路层、物理层

OSI模型描述计算机网络通信中数据传输的过程

  1. 封装:在发送方,数据从上到下逐层传递过程中,每层要加上适当的控制信息。
  2. 传输:到最底层,数据成为二进制比特流,再转换为电信号通过物理介质传输到接收方。
  3. 拆封:在接收方,数据从下到上,要逐层剥去发送方相应层加上的控制信息。

传输效率的计算

长度为100字节的应用层数据交给运输层传送,需加上20字节的TCP首部。再交给网络层传送,需加上20字节的IP首部。最后交给数据链路层的以太网传送,加上首部和尾部18字节。试求数据的传输效率。
若应用层数据长度为1000字节,数据的传输效率是多少?

答:数据长度为100字节时
传输效率=100/(100+20+20+18)=63.3%

数据长度为1000字节时,
传输效率=1000/(1000+20+20+18)=94.5%

计算机网络的分类

  • (1)从网络结点分布范围来看,可分为局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)和城域网(Metropolitan Area Network,MAN)。以及个人区域网(Personal Area Network,PAN)

  • (2)按交换方式可分为电路交换网络(Circurt Switching)、报文交换网络(Message Switching)和分组交换网络(Packet Switching)。

  • (3)按网络拓扑结构可分为星型网络、树型网络、总线型网络、环型网络和网状网络(不规则型网络)。

  • (4)按传输介质可以分为有线网络和无线网络。

计算机网络相关性能指标

传输速率

每秒钟通过信道传输的信息量称为比特传输速率,记作rb。单位是比特/秒(b/s或bit/s),简称比特率。也可写为bps(bit per second)

带宽

原指某个信号具有的频带宽度。带宽也表示通信线路所能传送数据的能力。即在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。又是b/s。

传播速率

MDZZ

传输时延

发送数据帧所需要的时间。
发送时延 = 数据帧长度(b)/ 发送速率(b/s)

发送时延==传输时延

传播时延

电磁波在信道中传播一定距离需要花费的时间。
传播时延 = 信道长度(m) / 电磁波在信道上的传输速率(m/s)

1…456…10
bwael

bwael

学习总结 思考感悟 知识管理

46 日志
3 分类
27 标签
RSS
github coding twitter zhihu
Creative Commons
Links
  • Main Site
  • Tonglele
© 2020 bwael
Hosted by GitHub & Coding Pages