Web开发学习

Web入门:

教程资源

  • 学习目的:设置简单网页所需的工具并发布你自己的简易代码

建立第一个网站

  1. 软件安装
  2. 做好规划,将展示什么信息,将使用什么样的字体和颜色:网站看起来是什么样的

绘制草图:内容主题,图像,字体

  1. 处理文件

网站应该保存在何处:本地网站,相关文件放入一个单独文件夹中,可以映射出服务器端站点文件结构。首先确定网站项目存储位置,存放所有网站项目。

  1. 网站应该使用什么结构?

最基本、最常见的结构:一个主页index.html、一个图片文件夹image、一个样式表文件夹styles和一个脚本文件夹scripts

  1. HTML,CSS, JS基础
  • JS:动态编程语言,当应用于HTML文档时,可为网站提供动态交互特性
  • 应用场合:极其广泛;简单到幻灯片、照片库、浮动布局和响应按钮点击,复杂到游戏、2D/3D动画,大型数据库驱动程序等。
  1. 发布网站:Github

写好了代码并且整理好了网站的全部文件后,需要将它们全部上线,这样别人才能看到。

  • 获取主机服务和域名:这种方法接入互联网,本地文件与服务器文件传输
  • 在线工具发布网站:
  1. Github社交编程网站,允许上传代码库并储存在Git版本控制系统里,然后可以协作代码项目。一个特点:GitHub pages,允许将代码放在网上
  2. Google App Engine:可从头开始构建多级web应用,或是托管一个静态网站
  1. 网站如如何运行的:万维网的工作
    在这里插入图片描述

《Flask Web开发实战》

  1. 章节概括
    在这里插入图片描述

在这里插入图片描述


在这里插入图片描述


flask框架学习实战:Web开发

课程资源

记录知识点:blog
总结回顾脑子里的框架:note

整体思路

联合项目:

  • h5页面:展示
  • 后端处理:前端发送请求给后端,后端处理,前后端分离实现前后端呼应:vue实现
  • 实现逻辑(python)
    在这里插入图片描述
    在这里插入图片描述

三个框架:

  1. flask:轻量级,灵活
  2. tornado:c10k
  3. Django:重量级
虚拟环境
  1. 为什么使用虚拟环境:多个项目(app开发):满足不同版本的包的需求就使用不同的虚拟环境(不同的house放不同的包,开发不同的app就进入不同的house(安装包到这个house/虚拟环境)进行开发)
  2. 如何创建虚拟环境

windows下:首先virtualenv,然后管理虚拟环境virtualenvwrapper
在这里插入图片描述

在这里插入图片描述

开发Web程序:针对服务器端
  • b/s:browser/server 浏览器(PC端浏览器作为客户端)/服务器
  • c/s:client/server 客户端(手机上app应用)/服务器
WSGI服务器

是Python语言定义的Web服务器和Web应用程序或框架之间一种简单通用的接口(遵循规则)

  • 框架有多种,保证很好的融合:app.run()自动遵循WSGI跟服务器进行融合
    在这里插入图片描述
app的丰富
  • 404:请求的东西没有
  • 装饰器:路由定义与视图函数
  • 输入域名进行浏览器访问:根据路径进行访问指定的server端口号
    在这里插入图片描述
  • run(host = ‘ip地址’, port=‘端口号’)
  • ip地址,一个端口号对应一个程序

默认情况下是本机访问,如果想让外网(云服务器下)都能访问必须在run()中修改ip地址0.0.0.0的形式

  • debug默认off

debug是为开发人员准备的:开发的代码改变,debug=true,服务器实时改变(reload重新加载最新的代码)

  • 设置配置文件

app加载配置文件即可
配置信息拥有字典数据的类

  • 请求与响应

包含三样东西:请求/响应行,请求/响应头,请求/响应体

在这里插入图片描述在这里插入图片描述

post拥有请求体

response:响应,状态码:200ok,404not found,http状态码大全
响应头:headers
响应体:响应一堆标签:返回的内容,浏览器翻译标签

  • 路由
  • 给路由默认绑定视图函数
    路由是一个装饰器,装饰一个函数add_url_rule()
  • 路由的变量规则:路由部分出现变量,且返回类型的确定:uuid的使用(用作标识)
    在这里插入图片描述
  • 路由的处理:/的添加与不添加。路由是自上而下而匹配的。
  • 请求和响应

返回:

  • 字典浏览器以js格式进行翻译;
  • 其余按照html的语法翻译,处理成网页形式;
  • response:是类对象,其中可以有属性、方法(可以进行调用)
    在这里插入图片描述
  • request:类对象,其中封装了请求头和请求体;获取页面参数交个后端-

request.args.get(‘username’) //get的获取方式
request.form.get(‘username’) //post的获取方式

  • 重定向redirect():有两次响应,第一次那个302状态码,第二次立马改变浏览器地址栏内容为location地址,向服务器再次发请求
    在这里插入图片描述
  • url_for(endpoint, values):装饰器中包含endpoint参数,作用:当路径过长时,进行重定向时根据url_for()进行映射,即路由的反向解析。
  • 模板:(网页)
  • 模板引擎:底层jinjia2来处理的(最终是返回成字符串的)

函数已经由装饰器app装饰过,此函数会默认从规定好的文件夹来找东西。
在这里插入图片描述

  • 模板语法:
  1. 变量:list(列表)、dict(字典)、object(对象)
  2. 代码控制块:for , if-else,loop
    {% for girl in girls %}
    。。。
    {% end for %}
  3. 模板的继承、block、include、宏
  4. js代码:前端动作响应
  • 蓝图
  • 目的:将项目分成不同功能,apps包(定义初始化函数用来创建一个app对象,)中存放不同的功能包(自己单独定义自己的路由:导入蓝图,注册蓝图,装饰器路由与绑定函数定义)
  • 蓝图也是路由的不同表示方式,将app进行分解,蓝图承担联系的任务

定义蓝图、注册对应蓝图(联系到一个app中)

now:view、template、蓝图

在这里插入图片描述

接下来:model-数据库:增删改查
  • flask-script:让命令行支持自定义命令的工具——runserver:通过命令对其进行操作
  • manager的config配置
  • 目的:进行命令的管理和使用
  • 公共配置类,开发环境下的配置类,生产环境下的配置类
    配置:
  1. 连接路径
  2. 创建映射对象db,实现app与第三方映射工具(数据库)之间的关联
  3. 创建命令,交给manager管理
  4. 创建模型类:models.py文件——类继承model
    在这里插入图片描述
  5. 使用命令:
  • 在终端执行python app.py db init,产生文件夹migrations
  • 在终端执行python app.py db migtrate,生成了alembic_version版本表(升级/降级更新)

在这里插入图片描述

在这里插入图片描述

  • 数据库准备(配置信息):

flask app与数据库:

  • flask-sqlalchemy(第三方拓展)基于SQLAlchemy,并让程序员使用起来更加方便:实现ORM映射
  • flask-migrate:发布命令工具

两者都要挂到app上,migrate实现映射
flask的项目结构对数据库的搭建:(见上3条配置)
在这里插入图片描述

  • model类:
  • 继承db
  • 书写model
  • 执行命令,生成表
  • 密码加密:对password处理
查询Query

Flask-SQLAlchemy操作MySQL中表的数据的相关操作
db.session.query()

©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页