博文

目前显示的是 五月, 2022的博文

Vue前端篇之项目初始化

一、基础库安装 (二)ElementUI安装          进入 ElementUI 网站,查看安装指南,在项目根目录下执行安装命令: npm install element-plus --save 安装成功后就可以在项目中进行引入了,在main.js文件中: import ElementPlus from "element-plus"; import "element-plus/lib/theme-chalk/index.css"; 然后进行: app.use(ElementPlus); main.js中完整的代码: import { createApp } from "vue"; import App from "./App.vue"; import router from "./router"; import store from "./store"; import ElementPlus from "element-plus"; import "element-plus/lib/theme-chalk/index.css"; const app = createApp(App); app.use(store); app.use(router); app.use(ElementPlus); app.mount("#app"); 使用ElementUI可以进行页面的布局。  (二)axios安装  axios是向后台发送请求使用的工具,现在进行安装,可参考 axios中文网 ,在项目的根目录下: npm install axios 封装:  在src目录下新建utils目录,然后再utils目录下新建request.js文件: import axios from "axios"; const request = axios.create({ baseURL: "http://127.0.0.1:8080/", timeout: 1000 }); export default request; 二、Vue项目配置 

Vue前端篇之项目创建

一、Vue Cli安装  Vue Cli脚手架用于快速的搭建Vue项目,详细参考文档: Vue CLI (vuejs.org) npm install -g @vue/cli 查看版本: C:\Users\shenjianping>vue -V @vue/cli 4.5.13 二、创建项目  在对应的目录下创建项目: D:\Project\webstorm_project>vue create full-stack-fronted 接着手动选择配置: 然后选择如下配置: 选择项目版本: 选择路由模式,选择history模式: 选择css预处理器: 选择ESLint + Prettier,进行代码格式化与检查: 选择语法检查方式,保存时就检查代码: 选择Babel、ESLint等配置文件位置,此处 选择单独放在不同的配置文件中: 此次配置是否保存用于下次项目使用,此处选择不保存: 稍等一会项目就会创建成功: 按照提示运行项目即可: 更多文章合集前往: 往期精彩文章

Vue前端篇之Node.js的下载、安装、配置

一、node.js下载安装          进入node.js 官网 下载对应的版本,比如这里下载的是最新的版本: 下载完毕后进行安装,点击安装包: 点击next按钮进行下一步: 勾选同意并且进行next: 看个人需求是否更改安装目录,一般默认即可,继续进行next: 默认安装即可,继续next: 一些必要工具进行安装,勾选然后next即可,此处根据实际项目情况选择是否勾选: 点击install按钮进行安装即可 点击Finsh完成安装。 安装完成后会出现上述的窗口,这是提醒你安装额外的工具需要的条件,按任意键即可,等待安装。 安装完毕后进行测试: 二、配置         主要是进行npm的配置,npm安装包有全局安装以及局部安装,如果是局部安装就会安装到当前的项目目录中,全局安装时所有的项目都可以使用的包。 ​         所以需要设置一下全局安装的目录,如果没有设置就会安装到默认的目录,比如当前的目录就是: C:\Users\shenjianping\AppData\Roaming\npm 另外就是需要设置一下node缓存的路径。 具体的默认配置可以通过npm root -g查看全局安装目录: C:\Users\shenjianping>npm root -g C:\Users\shenjianping\AppData\Roaming\npm\node_modules 通过npm config ls -l命令查看更多默认配置: C:\Users\shenjianping>npm config ls -l ; "default" config from default values _auth = (protected) access = null all = false allow-same-version = false also = null audit = true audit-level = null auth-type = "legacy" before = null bin-links = true browser = null ca = null cache = "C:\\Users\\shenjianping\\AppData\\Local\\npm-cache"

FastAPI后端篇之业务功能开发(二)

 一、功能开发 紧接上篇的功能开发,然后开发出版社、书籍功能。 (一)出版社功能开发 1、开发出版社功能的API 根据出版社名称查找出版社信息 创建一个出版社信息 获取所有出版社信息 2、请求与响应模型设计         设计请求响应模型对用户发送的请求体以及服务器返回的响应体进行校验,在schemas.py文件中: from pydantic import BaseModel, EmailStr from datetime import datetime from typing import Optional class PublishBase(BaseModel): name: str # 请求体模型校验 class PublishCreate(PublishBase): pass # 响应体模型校验 class Publish(PublishBase): id: int class Config: orm_mode = True 3、工具类开发  对用户提交的请求体进行操作,增删查改,在crud.py文件中: from sqlalchemy.orm import Session import models, schemas from typing import List # 通过出版社名字获取具体的信息 def get_publish_by_name(db: Session, name: str): return db.query(models.Publish).filter(models.Publish.name == name).first() # 创建一个出版社信息 def create_publish(db: Session, publish: schemas.PublishCreate): db_publish = models.Publish(**publish.dict()) db.add(db_publish) db.commit() db.refresh(db_publish) return db_publish # 获取所有的出版社信息 def get_all_publish(db: Session): return

FastAPI后端篇之业务功能开发(一)

 一、业务功能简介 本项目主要是开发图书馆管理系统,所以设计的业务需求主要包含: 作者功能开发 出版社功能开发 书籍功能开发 当然要完成上述的功能,还需要开发一些辅助功能,比如数据库依赖项、数据库操作工具集等。 二、功能开发 (一)数据库依赖项开发         在FastAPI框架中操作数据库必然需要先得到一个数据库连接,这里得到数据库连接的方法也比较简单,通过依赖项的方式来进行获取。 数据库会话配置          对数据库的增删改查会涉及到数据库的连接以及创建会话,所以在database.py文件中添加生成会话的代码: ... from sqlalchemy.orm import sessionmaker ... SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) ... 数据据依赖项开发          通过上面的SessionLocal来生成db实例用来连接数据库进行增删改查的操作,在dependencies.py文件中: from database import SessionLocal def get_db(): db = SessionLocal() try: yield db finally: db.close() (二)作者功能开发 1、开发作者功能的API 根据作者用户名查找作者信息 创建一个作者信息 获取所有作者的信息 2、请求与响应模型设计  设计请求响应模型对用户发送的请求体以及服务器返回的响应体进行校验,在schemas.py文件中: from pydantic import BaseModel, EmailStr from datetime import datetime from typing import Optional class AuthorBase(BaseModel): username: str # 请求体模型校验 class AuthorCreate(AuthorBase): email: EmailStr # 响应体模型校验 class Author(AuthorBase): id: int email: Ema

FastAPI后端篇之模型表创建、迁移

 一、数据库环境搭建         首先你需要有一个MySQL数据库,无论是本地的还是远程的都可以,其次我们需要在虚拟环境中安装SQLAlchemy,这是用来创建数据表模型的,具体安装: pip install sqlalchemy==1.4.18 接着还需要安装pymsql工具,它是用来连接数据库的: pip install pymysql==1.0.2 这样数据库相关的包已经准备完毕了。 二、数据库模型设计 我们需要使用SQLAlchemy来创建模型表,所以需要依赖于它基本的模型类。 模型基类 在database.py文件中创建基类: from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() 数据库模型设计 在models.py文件: from database import Base from sqlalchemy import Column, String, Integer, Float, DateTime, ForeignKey from sqlalchemy.orm import relationship import datetime """ 创建四个模型表: 1、书籍模型表 2、出版社模型表 3、作者模型表 4、出版社于书籍多对多关系模型表 """ class Book(Base): __tablename__ = "book" id = Column(Integer, primary_key=True, index=True) title = Column(String(32)) price = Column(Float) publish_date = Column(DateTime, default=datetime.datetime.now) author_id = Column(Integer, ForeignKey("author.id")) class Author(Base): __tablename__ = "author" id =

FastAPI后端篇之项目搭建

 一、环境搭建         在之前的博文中 Python本地虚拟环境搭建及Pycharm配置 讲述过虚拟环境搭建的过程,这里不再赘述,直接使用即可。 查看虚拟环境 conda info --env 创建虚拟环境 conda create -n FullStackEnv python=3.8.5 激活虚拟环境  conda activate FullStackEnv pip list 安装FastAPI pip install fastapi==0.65.1 二、创建后台项目 新建full-stack-backend项目 新建目录full-stack-backend,然后使用IDE打开即可:         接着需要在该目录中新建一些目录,不同的目录有不同的功能,此时需要新建alembic和app文件夹,alemic文件夹主要用于数据库的迁移版本管理,类似于Django中migrations,而app文件夹主要就是业务功能开发的内容,因为后台项目没有那么复杂,所以目录结构无需设计的过于复杂。 然后在各个目录中新建对应的.py文件: ├─FullStackEnv_1 │ │ alembic.ini 数据库地址配置 │ │ requirements.txt 依赖包导出 │ │ __init__.py │ │ │ ├─alembic │ │ │ env.py 与ORM进行关联配置 │ │ ├─app │ crud.py 数据库操作相关 │ database.py sqlalchemy相关配置 │ dependencies.py FastAPI框架依赖项 │ main.py │ models.py 数据库模型表 │ schemas.py Pydantic数据校验模型 │ __init__.py 项目的大概架子搭好了,接着就是将虚拟环境配置到该项目上。 安装依赖 将项目中需要的依赖包进行安装,也就是requirements.txt文件中的依赖包: pip install -r

基于FastAPI框架全栈项目之项目简介

 一、项目简介 FastAPI是基于Python语言开发的的异步框架,其特点就是: 高性能 易于学习 快速编码 可用于生产           如果你一直使用的是Django、Flask等框架,不妨学习一下这个框架,带给你不一样的感受,作者也是学习很长时间了,所以准备通过一个项目来进行巩固,那么这个项目后端就是使用的FastAPI框架,前端使用的是Vue框架,前后端分离的图书管理系统项目。 所以涉及到前、后端同时开发,当然涉及的知识点就会比较多。 二、后端知识点 FastAPI 本身项目后端就是使用该框架进行开发的,所以FastAPI的基本使用是需要掌握的,可以通过 官网 进行学习。 MySQL MySQL作为流行度比较高的关系型数据库,该项目就是使用它来作为数据存储的,所以需要掌握数据库安装、基本的增上改查的操作。 SQLAlchemy SQLAlchemy是用来做什么的呢?在 官网 中是这样说的SQLAlchemy 是 Python SQL 工具包和对象关系映射器,它为应用程序开发人员提供了 SQL 的全部功能和灵活性。所以使用它我们可以避免直接接触底层的SQL语句,从而更容易的对数据库进行操作,类似于Django中的ORM。 Pydantic 这个又是做什么的呢?如果前台给你发送一个请求体,你会怎么校验数据的有效性呢?使用if这个条件语句去判断吗?Pydantic就是对数据校验的一个工具,它使用Python的声明进行数据的校验以及配置管理,详情查看 官网 。 后台开发基本就是涉及上述的知识点,在开发中不断的去学习以及掌握更多skills吧。 三、前端知识点 Vue.js 既然前端使用的是Vue框架开发,那么必定需要掌握Vue框架的一些知识点,Vue框架较前端其它框架比,还是比较容易上手的,详情可查看 官网 。 Easy-Mock Easy Mock 是一个可视化,并且能快速生成后台的模拟数据的服务,参考 文档 ,当然你也可以选择其它的模拟后台数据的工具。比如YApi等。 这就是前端应该需要掌握和了解的内容。 更多文章合集前往: 往期精彩文章

Python特性浅析

一、什么是Python         Python是由吉多·范罗苏姆(Guido van Rossum)于1989年开发的,作为ABC语言的一种继承。根据其创建者 Guido van Rossum 的说法,Python 是:    “高级编程语言,其核心设计理念都是关于代码可读性和允许程序员用几行代码表达概念的语法” 从上面一句话可以看出来Python的语言特点大概就是: 代码可读性 代码简洁性 二、应用领域 Python的应用场景有很多,如: Web开发,拥有很多知名的Web框架(Django、Flask...) 云计算,典型代表OpenStack 数据分析,拥有众多的第三方数据分析库,如:NumPy、Pandas、Matpolotlib等 人工智能,进行机器学习、深度学习算法的研究 ... 三、解释型语言         假如 你看Python相关资料的介绍可能看到Python是一门解释型语言,那么什么是解释型语言呢?与之相对的就是编译型语言。 编译型         编译型语言就是在写完程序后,将程序编程成二进制的文件,比如.exe类型文件,因为最终需要食用电脑来运行,而电脑只会识别“0”或者“1”这样的字节码。 当编译成这样的二进制之后,以后只要运行遮掩的二进制文件即可,所以执行效率高。 常见的语言有:C、C++、Golang等 解释型           解释型语言就是使用解释器一边执行一边转换成二进制,以便电脑执行,这样显然速度就没有编译型语言快,每次执行所写的应用程序都要从头开始一边执行一边运行。常见的语言有:JavaScript、Python、PHP等。         所以,Python与编译型语言相比在执行效率上是会有一些劣势,而上面所说的解释器又是什么呢?你认为我们在前面所说的安装Python是做什么用的呢?其实在安装Python后就会有一个Python解释器,它就是专门将我们所写的Python程序翻译成二进制的。 每一门语言都有其优势和劣势,需要辩证的去看,我们可以取其所长,加以利用。 更多文章合集前往: 往期精彩文章

Python本地虚拟环境搭建及Pycharm配置

 一、虚拟环境搭建的几种方式        看到上面这个标题你也许质疑为什么是本地,没错,与之相对的就是远程虚拟环境的搭建。大部分开发者可能用的是windows系统来进行开发,然后将开发后的项目部署到Linux服务器上,那么在Linux上搭建虚拟环境,然后本地来使用就属于远程虚拟环境搭建了。 而本篇文章探讨的是本地虚拟环境的搭建,搭建的方式有很多,比较常见的有: anaconda virtualenv pipenv 那么这几种有什么区别以及又该如何选择呢?        anaconda和后面两种区别较大,在上一篇文章中提过全局环境就是将Python包下载下来直接安装就使用了,anaconda你可以理解成一个集成工具,它已经集成了Python,那么不同版本的anaconda集成了不同版本的Python,所以你无需再单独去下载Python了,只需要下载一个anaconda即可,安装后集成的Python就是全局环境的Python。         而针对后面两种,需要注意的是你必须单独去下载Python并且安装在全局环境中,然后在全局环境中再去安装能够虚拟化环境的工具包。         显然anaconda比较适合初学者,不用费那么大力去折腾环境了,无论是初学者还是有基础的朋友们,我都建议使用第一种,上手容易而且也好用,在本篇文章中我们就来探讨第一种方式的安装与使用。 二、Anaconda的安装 既然安装就需要下载: 官网 清华镜像源          推荐使用清华镜像源,不同版本的Anaconda中带着不同的Python解释器,假如使用Python3.8.5,就需要下载该版本的 Anaconda 。 此时进行安装,基本上就是一直Next即可,但是需要注意2个地方: 第一个选项就是适合自己,第二个选项就是任何用户都可以。         这个地方建议选择第一项,第一项就是自动添加系统环境变量,这样我们就不用自己来配置,它的效果就是当你安装完成后,可以直接在Dos命令行中输入Anaconda相关的命令。         此时,就继续向下安装即可。当你完成安装后你可以直接在Dos命令行中输入conda和python命令,如果出现下面的内容,那么就是完成了Anconda的安装: C:\Users\shenjianping>conda -V conda 4.9.2 C

Python虚拟环境搭建的必要性

 一、什么是全局环境         很多朋友在学习Python时直接就去 官网 下载安装包然后进行安装Python,接着你可能就会在DOS窗口通过Python命令: C:\Users\shenjianping>python Python 3.8.5 (default, Sep 3 2020, 21:29:08) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32 Warning: This Python interpreter is in a conda environment, but the environment has not been activated. Libraries may fail to load. To activate this environment please see https://conda.io/activation Type "help", "copyright", "credits" or "license" for more information. >>> OK大功告成,貌似没有什么问题,然而却为后续的开发埋下诸多隐患和弊端。         上面的环境你可以理解成在全局环境安装Python,那么假如现在你在全局环境下开发两个项目,分别是p1和p2:           从图中可以很清楚的看到在全局环境下同时开发p1和p2项目,它们都依赖django第三方库,但是版本不同,同一个环境下只能有一个版本会被保留下来,另一个版本会自动卸载掉。难道在2个项目同时紧急时,你的老板会允许你一个一个的搞吗? ​ 那么我们再来想一个场景,如果p1依赖的requests包,而p2不需要,请问如果p1已经完成了,p2还要这个包干什么,这不就是显然的环境臃肿吗? ​ 最后,如果打包上线导出项目依赖,可能大部分都是上个项目遗留下来一堆没用的依赖包,这又如何解决呢? ​ 凡此种种,都让我们寻求一种开发和部署环境解决方案。虚拟环境必不可少: 二、什么是虚拟环境           你可以简单的理解就是在一个大的房子里面有很多独立的小房子,它们有着自己独立的空间,之间