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)增删改查等不需要

读后笔记 -- Python 全栈测试开发 Chapter10:接口的设计与开发的更多相关文章

  1. python 全栈开发之路 day1

    python 全栈开发之路 day1   本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可 ...

  2. python 全栈开发,Day99(作业讲解,DRF版本,DRF分页,DRF序列化进阶)

    昨日内容回顾 1. 为什么要做前后端分离? - 前后端交给不同的人来编写,职责划分明确. - API (IOS,安卓,PC,微信小程序...) - vue.js等框架编写前端时,会比之前写jQuery ...

  3. 学习笔记之Python全栈开发/人工智能公开课_腾讯课堂

    Python全栈开发/人工智能公开课_腾讯课堂 https://ke.qq.com/course/190378 https://github.com/haoran119/ke.qq.com.pytho ...

  4. Python全栈开发【面向对象】

    Python全栈开发[面向对象] 本节内容: 三大编程范式 面向对象设计与面向对象编程 类和对象 静态属性.类方法.静态方法 类组合 继承 多态 封装 三大编程范式 三大编程范式: 1.面向过程编程 ...

  5. Python全栈开发【模块】

    Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...

  6. python全栈开发中级班全程笔记(第二模块、第四章)(常用模块导入)

    python全栈开发笔记第二模块 第四章 :常用模块(第二部分)     一.os 模块的 详解 1.os.getcwd()    :得到当前工作目录,即当前python解释器所在目录路径 impor ...

  7. 想成为Python全栈开发工程师必须掌握的技能

    什么是Python全栈工程师? 即从前端页面的实现,到后台代码的编写,再到数据库的管理,一人可以搞定一个公司网站的所有事情,真正实现全栈开发. 全栈只是个概念 也分很多种类 真正的全栈工程师涵盖了we ...

  8. python 全栈开发,Day117(popup,Model类的继承,crm业务开发)

    昨日内容回顾 第一部分:权限相关 1. 权限基本流程 用户登录成功后获取权限信息,将[权限和菜单]信息写入到session. 以后用户在来访问,在中间件中进行权限校验. 为了提升用户体验友好度,在后台 ...

  9. python 全栈开发,Day98(路飞学城背景,django ContentType组件,表结构讲解)

    昨日内容回顾 1. 为什么要做前后端分离? - 前后端交给不同的人来编写,职责划分明确. - API (IOS,安卓,PC,微信小程序...) - vue.js等框架编写前端时,会比之前写jQuery ...

  10. python 全栈开发,Day43(python全栈11期月考题)

    python全栈11期月考题 1.常用字符串格式化有哪些?并说明他们的区别 2.请手写一个单例模式(面试题) 3.利用 python 打印前一天的本地时间,格式为‘2018-01-30’(面试题) 4 ...

随机推荐

  1. C#:开发一个winform窗体程序,实现强势股票池的数据获取。(需对接第三方接口,目前可免费使用)

    写在前面:短暂的接触过一段时间的股票市场,只能说A股真的太能杀了! 开发这个工具的初衷呢,是和几个好友在每日做"慈善"后,突发奇想:如果能实时获取当前股市里强势的股票就好了,因为这 ...

  2. Loadrunner性能测试简记

    性能测试 模拟多种正常值.峰值以及异常负载条件来对系统的各项性能指标进行的测试. 功能对比性能 功能测试是操作功能.需求规格(正向.逆向).性能测试是测业务场景.满足度(时间.空间).二者相辅相成,都 ...

  3. 使用python编写简单的api接口

    先安装flask模块 pip install Flask py文件 from flask import Flask, request, jsonify app = Flask(__name__) @a ...

  4. python批量修改一个文件夹下含多个文件夹中的所有图片名称

    网上能找到的,大多是只对一个文件夹下所有图片进行重命名的代码. 这边实现的是,一个文件夹下有多个文件夹内图片的重命名. rename.py #!/usr/bin/python # -*- coding ...

  5. Java第四讲动手动脑

    1. 在以上的代码中,main方法调用的是public void println(Object x),这一方法调用了String类的valueOf方法,valueOf方法内部调用Object. toS ...

  6. MySQL 中的锁有哪些类型,MySQL 中加锁的原则

    MySQL 中的锁理解 锁的类型 全局锁 缺点 适用范围 表级锁 表锁 元数据锁 意向锁 自增锁 行锁 Record Lock Gap Lock Next-Key Lock 插入意向锁 加锁的原则 1 ...

  7. 浅析容器运行时奥秘——OCI标准

    背景 2013年Docker开源了容器镜像格式和运行时以后,为我们提供了一种更为轻量.灵活的"计算.网络.存储"资源虚拟化和管理的解决方案,在业界迅速火了起来. 2014年更是容器 ...

  8. SAP 文档必须包含正确的根元素

    --------------------------- LoadXML Malformed XML Error --------------------------- 文档必须包含正确的根元素. -- ...

  9. abap链接My sql

    Linux中ODBC源的建立--MySQL 需要用到数据库,但我用的是Linux,只能在下面安装ODBC和MYSQL     1.安装必要的包         安装ODBC     sudo apt- ...

  10. 关于使用C++调用WCF的方法

    因为近期要对接别人的接口,使用的是wcf,因为之前没有使用过wcf,更不了解它,于是在使用的时候出现了很多问题. 下面就记录一下下 在调用方法之前,我们一般都会拿到一个地址,http://xxxxxx ...