读后笔记 -- Python 全栈测试开发 Chapter10:接口的设计与开发

10.1 Django 框架

1. 几个主流的框架:

  • 1)适合初学者的接口框架:Django,Flask
  • 2)针对底层定义:Twisted
  • 3)实现高并发:Tornado

2. install

// 使用python 下的 pip
pip stall django

3. 创建 Django 项目

   

 4. 启动 Django 服务(命令行)

// 在 Django project 的 manage.py 目录下,运行
python manage.py runserver

// 访问 http://127.0.0.1:8000/,提示 successful 就表示服务启动成功

// 指定端口启动 。注意:不能使用 1)已被占用端口;2)浏览器认为不安全的端口(如 chrome 认为的 6666,不同浏览器限制不同)
python manage.py runserver 127.0.0.1:30060

 4.1 指定 IP 及 端口,可以让其他人访问

python manage.py runserver 192.168.1.6:30060

 浏览器访问时 http://192.168.1.6:30060/

 => 依据提示,修改 提示目录下的 request.py,将 IP 地址添加到 allowed_hosts 中,完成后,再次刷新,就可以正常访问了。

5. 服务启动(pycharm 运行 manage.py) 

1)pycharm 右键 manage.py,run manage.py,会提示 “Type 'manage.py help <subcommand>' for help on a specific subcommand.”

2)点击右边的 manage -> Edit Configuation -> 修改 Parameters,新增 “runserver 192.168.1.6:30060” -> 回到 manage.py,再右键 run manage,这次可以正常启动了

   

6. Django 项目文件

  • wsgi.py:web 服务,支持 HTTP 协议,但不支持 WebSocket 协议
  • asgi.py:web 服务,支持 HTTP + WebSocket 协议,还支持 Web 开发中的一些新标准,是 WSGI 的一种扩展
  • settings.py:配置文件,包括 数据库设置、网页语言、环境配置、安全配置、参数配置等
  • urls.py:url 路由,可实现 Web 中 url 路径访问的映射操作
  • manage.py:django 服务运行及管理的命令管理集合的管理工具。可以与 Django 项目交换,可看作项目的 djiango-admin.py(Python39\Scripts\ 下) 版本,实际上,两者共有相同的后台代码
  • db.sqllite3:数据库文件,以文件形式存储的数据格式

10.2 MVT 框架

1. django 分层原理:

1)传统的三层架构:UIL 表示层(数据的传递和显示操作)、BLL 业务逻辑层(业务逻辑处理)、DAL 数据访问层(数据信息存储及提取) ->

2)MVC 三层架构:Model 模型(对数据库层的访问进行封装)、View 视图(将结果封装成页面展示给用户)、Controller 控制(实现接受请求,完成请求的业务逻辑处理)

      Spring MVC 基本架构:https://www.cnblogs.com/bruce-he/p/13081494.html

3)Django 的MVT 分层模式(model view template)模块模型视图层;主要是基于 MVC 三层架构而来

  • M:负责与数据库交互,对应 MVC\M
  • V:接受请求、业务进行处理并进行响应,对应 MVC\C
  • T:构建 HTML,CSS,JS 等,对应 MVC\V

2. Django

1)View 视图层:有两种表现形式: 

  • FBV (Function Base View) 函数视图:
  •                声明一个函数,其第一个参数必须是 request,即获取当前的请求对象即 httpRequest
  • CBV (Class Base View) 类视图
  •                声明一个类,该类必须继承 View 对象;在 url 映射的时候,一定要调用 as_view() 方法,且该类中声明的处理方法即是请求方法(方法名必须是 get, post, put...)

响应的处理形式有

  • 1)数据格式(json)
  • 2)html 页面
  • 3)重定向到 url(需要在 settings.py 的 TEMPLATES \ DIRS 里面 配置 Templates)

    

---------- urls.py -----------
from django.contrib import admin
from django.urls import path
from djangoProject.View.Login_Index import Login_Index

urlpatterns = [
    path('admin/', admin.site.urls),
    path("login", Login_Index())
]

----------- Login_Index.py --------------
from django.http import HttpResponse
from django.shortcuts import redirect, render

def Login_Index(request):
    # 文本响应
    # return HttpResponse("Hello World.")
    # 重定向到链接
    # return redirect("http://www.baidu.com")
    # render to html
    return render(request, 'login.html')
如果 Post 请求时,出现 403 时,可将 settings.py 的此项配置注销

 

Django http request API documenthttps://docs.djangoproject.com/en/4.1/ref/request-response/

3. json 数据格式:

json 相关连接:https://www.cnblogs.com/bruce-he/p/16942997.html


10.3 接口开发

10.3.1 SQLite 数据库

1. sqlite3:以文件形式进行存储数据的小型实用的数据库。一般以 .db 或 .sqlite 为后缀

2. sqlite 运行

1)如已配置了 android sdk 环境变量则可以直接运行 sqlte3 进入

     

2)通过 https://sqlite.org/index.html 下载,然后配置到环境变量 PATH 中

 

========== sqlite 常见命令 ===========
# 进入 sqlite3
> sqlite3

# 创建 database
1)方式一(cmd 窗口):
> sqlite3 my.db
2)方式二(sqlite 内部):
sqlite> open my.db

# 查看 database
sqlite> .databases

# 创建表
sqlite> create table userInfo( userID int, userName varchar(20), userPwd varchar(20));

# 查看表
sqlite> .table

# 插入数据
sqlite> insert into userInfo values(1, "admin", "123456");

# 查询数据
sqlite> select * from userInfo;

# 更新数据
sqlite> update userInfo set userPwd = "234567" where userName ="admin";

# 删除数据
sqlite> delete from userInfo where userName = "admin";

# 注意:
1)数据库 或 表等操作 命令前加 “.”
2)增删改查等不需要

 

posted on 2022-11-22 22:16  bruce_he  阅读(55)  评论(0编辑  收藏  举报