版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
云应用开发实战单元1-我的云服务器项目1.1创建虚拟机与数据库项目1.2设计普通用户程序项目1.3设计管理员程序项目1.4部署应用程序到EC2云端实例项目1.5综合实训—我的云服务器单元3—航班数据采集及可视化分析知识目标:掌握亚马逊云科技账号密钥知识掌握亚马逊云科技账号的权限策略知识掌握AmazonEC2服务知识掌握Linux操作系统知识掌握Python在Linux中的开发知识掌握FlaskWeb程序的开发知识掌握SHA256加密知识掌握FlaskWeb操作数据库的知识掌握正则表达式数据验证知识掌握AmazonEC2虚拟机知识
能力目标:能创建亚马逊云科技账号并获取密钥能使用策略配置账号权限能使用AmazonEC2服务创建Linux虚拟机能在Linux中搭建Python开发运行环境能使用Flask开发简单的Web程序能使用正则表达式验证数据的有效性能使用SHA256对密码进行加密存储能使用Flask进行数据库的基本读写操作能使用分页的方式显示数据能使用AmazonRDS创建MySQL数据库实例项目1.1创建虚拟机与数据库创建AWSIAM用户使用策略配置权限创建AmazonEC2Linux虚拟机创建AmazonRDSMySQL数据库项目1.1—创建虚拟机与数据库1.1.1创建AWS访问账号任务描述我们要使用AWS的云服务,就必须先有一个能操作云服务的账号,这个任务目的就是引导大家创建一个AWS账号。项目1.1—创建虚拟机与数据库1.1.1创建AWS访问账号IAM服务AWSIdentityandAccessManagement(IAM)是一项AWS的托管服务,为使用AmazonWebServices(AWS)的客户在AWS中管理用户和用户权限。借助IAM,可以集中管理用户、访问密钥等安全凭证,以及用于管理用户访问AWS资源的权限。项目1.1—创建虚拟机与数据库1.1.1创建AWS访问账号AWS账号访问IAM用户访问亚马逊云科技的方式主要有三种,管理控制台、CLI命令行界面和SDK编程访问。在创建用户时,可以按照需求进行选择。(1)管理控制台是一个基于Web的平台,可以使用这个平台操作亚马逊云科技的各种云服务,通过用户名、密码可以登录到亚马逊云科技管理控制台。项目1.1—创建虚拟机与数据库1.1.1创建AWS访问账号AWS账号访问(2)CLI命令行界面让用户能够在命令行Shell中使用命令与亚马逊云科技服务进行交互。用户也可以通过Python语言调用亚马逊云科技的SDK程序操作云服务。这两种方式操作云服务时,需要创建IAM用户时生成的访问密钥(访问密钥ID(AccessKeyID)和秘密访问密钥(SecretAccessKey))。项目1.1—创建虚拟机与数据库1.1.1创建AWS访问账号创建IAM用户(1)使用根用户登录控制台,选择IAM服务。(2)添加用户,选择访问权限类型为“编程访问”以及“AWS管理控制台访问”,并设置控制台密码为自定义密码,点击“下一步:权限”。项目1.1—创建虚拟机与数据库1.1.1创建AWS访问账号(3)不添加权限,点击“下一步:标签”。(4)不添加标签,点击“下一步:审核”。项目1.1—创建虚拟机与数据库1.1.1创建AWS访问账号(5)审核创建的用户信息,点击“创建用户”。项目1.1—创建虚拟机与数据库1.1.1创建AWS访问账号保存AWS账号信息创建用户成功,账号的AccessKeyID(访问密钥ID)与AccessSecretKey(秘密访问密钥)包含在一个.csv文件中,下载这个文件后可以获取这些值。项目1.1—创建虚拟机与数据库1.1.2使用策略配置权限访问控制当IAM用户在AWS中发出请求时,AWS云服务会检查其是否具有权限。我们可以创建策略并将其附加到IAM身份或AWS资源上,以便管理AWS中的访问。策略是AWS中的JSON文档,在附加到身份或资源时,策略定义它们的权限。项目1.1—创建虚拟机与数据库1.1.2使用策略配置权限基于身份的策略和基于资源的策略策略是AWS中的对象;在与标识或资源相关联时,策略定义它们的权限。在创建权限策略以限制对资源的访问时,可以选择基于身份的策略或基于资源的策略。基于身份的策略可以附加到IAM用户、组或角色。这些策略可让您指定该身份可执行哪些操作(其权限)。基于资源的策略附加到某个资源。项目1.1—创建虚拟机与数据库1.1.2使用策略配置权限为用户分配权限的方式有三种:将用户添加到组、从现有用户复制权限、直接附加现有策略。项目1.1—创建虚拟机与数据库1.1.2使用策略配置权限直接附加现有策略(1)查看用户现有权限。(2)添加访问EC2实例的权限。项目1.1—创建虚拟机与数据库1.1.2使用策略配置权限直接附加现有策略(3)再次查看用户权限。项目1.1—创建虚拟机与数据库1.1.2使用策略配置权限将用户添加到组作为AWS最佳实践,我们可以将策略附加到组,然后使用户成为相应的组的成员。(1)创建组“EC2-Support”。(2)为EC2-Support组添加AmazonEC2FullAccess策略。项目1.1—创建虚拟机与数据库1.1.2使用策略配置权限(3)将用户加入EC2-Support组。(4)查看用户现有权限。项目1.1—创建虚拟机与数据库1.1.2使用策略配置权限从现有用户复制权限选择此选项可从现有用户将所有策略复制到新用户。项目1.1—创建虚拟机与数据库1.1.3创建AmazonEC2Linux虚拟机EC2服务AmazonElasticComputeCloud(AmazonEC2)在AWS云中提供可扩展的计算能力。使用AmazonEC2可避免前期的硬件投入,因此能够快速开发和部署应用程序。通过使用AmazonEC2,可以根据自身需要启动任意数量、类型的虚拟服务器、配置安全和网络以及管理存储。同时,将AmazonEC2与弹性伸缩组(AutoScalingGroup)搭配使用,可以根据工作负载的大小动态调整实例的数量,使成本与性能间取得更佳的平衡。项目1.1—创建虚拟机与数据库1.1.3创建AmazonEC2Linux虚拟机实例(Instance)AWS云中的虚拟服务器,每个实例的CPU处理能力、内存容量、存储大小和联网能力的组合情况各不相同,可以根据需求搭配不同的实例类型。Amazon系统映像(AMI)Amazon系统映像(AMI)是一种包含软件配置(例如,操作系统、应用程序服务器和应用程序)的模板,提供启动实例所需的信息。在启动实例时,必须指定AMI。项目1.1—创建虚拟机与数据库1.1.3创建AmazonEC2Linux虚拟机(1)使用IAM账号登录进入控制台(2)登录进入后选择EC2服务。(3)点击“启动实例”。1.发起实例启动项目1.1—创建虚拟机与数据库1.1.3创建AmazonEC2Linux虚拟机(1)选择Amazon系统映像(AMI)(2)选择实例类型2.启动实例项目1.1—创建虚拟机与数据库1.1.3创建AmazonEC2Linux虚拟机(3)配置实例详细信息(4)添加存储2.启动实例项目1.1—创建虚拟机与数据库1.1.3创建AmazonEC2Linux虚拟机(5)添加标签(6)配置安全组2.启动实例在本项目中以开发/测试为主要目的,因此可将来源IP设置为任何位置,但在生产环境建议限制来源IP的地址。项目1.1—创建虚拟机与数据库1.1.3创建AmazonEC2Linux虚拟机(7)核查实例启动,点击“启动”。创建新密钥对,并保存。2.启动实例项目1.1—创建虚拟机与数据库1.1.3创建AmazonEC2Linux虚拟机查看实例项目1.1—创建虚拟机与数据库1.1.3创建AmazonEC2Linux虚拟机3.连接实例(1)如果本地计算机操作系统是Linux或macOSXa)本地安装SSH客户端。b)终端窗口中,使用ssh命令连接实例,命令如下:ssh-i/path/my-key-pair.pemmy-instance-user-name@my-instance-public-dns-name其中/path/my-key-pair.pem代表私有密钥的本地路径和文件名(.pem);my-instance-user-name代表实例的用户名,对于AmazonLinux系统,用户名为ec2-user;my-instance-public-dns-name代表实例的公有DNS名称。项目1.1—创建虚拟机与数据库1.1.3创建AmazonEC2Linux虚拟机3.连接实例(2)如果本地计算机操作系统是Windowsa)本地安装PuTTY。b)使用PuTTY提供的工具PuTTYgen,将私有密钥my-key-pair.pem(.pem文件)转换为my-key-pair.ppk(.ppk文件)。项目1.1—创建虚拟机与数据库1.1.3创建AmazonEC2Linux虚拟机3.连接实例(2)如果本地计算机操作系统是Windowsc)使用PuTTY连接实例。启动PuTTY,在Category窗格中,选择Session,在HostName框中,输入实例的公有DNS。在Category窗格中,展开Connection,再展开SSH,然后选择Auth。完成以下操作:选择Browse,选择为密钥对生成的my-key-pair.ppk(.ppk文件),然后选择打开。项目1.1—创建虚拟机与数据库1.1.4创建AmazonRDSMySQL数据库AmazonRDSAmazonRelationalDatabaseService(AmazonRDS)是一项Web服务,让用户能够在AWS云中更轻松地设置、操作和扩展关系数据库。AmazonRDS提供六种常见的数据库引擎选项,包括AmazonAurora、MySQL、MariaDB、Oracle、MicrosoftSQLServer和PostgreSQL。它可以为用户提供经济实用的可调容量,并承担常见的数据库管理任务。项目1.1—创建虚拟机与数据库1.1.4创建AmazonRDSMySQL数据库1.发起RDS数据库实例启动(1)登录根账号,为IAM用户添“AmazonRDSFullAccess”策略。使用已有的IAM账号登录进入控制台。(2)打开AmazonRDS控制台。(3)创建MySQL数据库实例。项目1.1—创建虚拟机与数据库1.1.4创建AmazonRDSMySQL数据库2.启动实例(1)选择数据库引擎为MySQL(2)选择使用案例项目1.1—创建虚拟机与数据库1.1.4创建AmazonRDSMySQL数据库2.启动实例(3)指定数据库详细信息项目1.1—创建虚拟机与数据库1.1.4创建AmazonRDSMySQL数据库2.启动实例(4)配置高级设置项目1.1—创建虚拟机与数据库1.1.4创建AmazonRDSMySQL数据库2.启动实例(5)查看数据库实例(6)查看数据库实例的终端节点与端口项目1.1—创建虚拟机与数据库1.1.4创建AmazonRDSMySQL数据库3.用户管理数据库设计(1)连接数据库远程连接RDS数据库,使用命令:mysql-h<endpoint>-P3306-u<mymasteruser>-p其中<endpoint>为数据库的终端节点。也可以使用可视化工具(如Navicat)连接RDS数据库。项目1.1—创建虚拟机与数据库1.1.4创建AmazonRDSMySQL数据库3.用户管理数据库设计(2)创建数据库与数据表创建数据库usermanage,SQL语句如下:CREATEDATABASEusermanageDEFAULTCHARACTERSETutf8mb4DEFAULTCOLLATEutf8mb4_general_ci;项目1.1—创建虚拟机与数据库1.1.4创建AmazonRDSMySQL数据库3.用户管理数据库设计在usermanage数据库中创建数据表user,SQL语句如下:USEusermanage;CREATETABLEuser(idINTNOTNULLAUTO_INCREMENT,userVARCHAR(255),pwdVARCHAR(255),emailVARCHAR(255),PRIMARYKEY(id));项目1.1—创建虚拟机与数据库1.1.4创建AmazonRDSMySQL数据库3.用户管理数据库设计在表user中插入admin管理员用户,密码为1(用sha256加密),SQL语句如下:INSERTINTOuserVALUES(1,’admin’,’6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b’,’123@’);2项目1.2设计普通用户程序安装Python开发程序设计用户登录程序设计用户注册程序设计信息更新程序项目1.2设计普通用户程序1.2.1安装Python开发程序1.在EC2实例上安装Python运行环境使用yum程序包管理器安装,命令如下:yuminstallpython3-y2.使用pip安装Flask与PyMySQL命令如下:pipinstallflaskpipinstallpymysql项目1.2设计普通用户程序1.2.1安装Python开发程序3.Flask框架Flask是一个基于Python开发并且依赖jinja2模板和WerkzeugWSGI服务的一个微型框架,“微”意味着Flask旨在保持核心的简单,但同时又易于扩展。默认情况下,Flask不包含数据库抽象层、表单验证,或是其他任何已有多种库可以胜任的功能。然而,Flask支持用扩展来给应用添加这些功能。Flask的这些特性,使得它在Web开发方面变得非常流行。项目1.2设计普通用户程序1.2.2设计用户登录程序任务描述用户登录模块主要用于实现用户的登录。用户需要填写正确的用户名和密码,点击“登录”按钮,即可实现用户登录,跳转至相应的用户界面。如果输入的用户名或密码不正确,则提示错误。同时,在此页面上也可以点击“注册”按钮,进行新用户的注册。项目1.2设计普通用户程序1.2.2设计用户登录程序1.创建Flask项目在本地新建Flask项目app,其中包括app.py入口程序及两个子文件夹static和templates,static文件夹存放css/js静态资源,templates文件夹存放html模板文件。项目文件组织结构如下:/app/app.py/static/templates项目1.2设计普通用户程序1.2.2设计用户登录程序2.jQuery与layui框架jQuery是一个快速的、简洁的javaScript库。layui是一款采用自身模块规范编写的前端UI框架,遵循原生HTML/CSS/JS的书写与组织形式。我们可以借助jQuery与layui框架完成前端页面的开发。layui的使用可参考官方文档:/doc/。项目1.2设计普通用户程序1.2.2设计用户登录程序3.session的使用在Flask中使用session需配置“SECRET_KEY”,一般设置为24位的字符。代码如下:#从Flask模块导入sessionfromflaskimportsession#设置密钥app=Flask(__name__)app.secrect_key='A0Zr98j/3yXR~XHH!jmN]LWX/,?RT'或者随机数(os.urandom(24))项目1.2设计普通用户程序1.2.2设计用户登录程序4.jsonify的使用Flask提供了jsonify函数供用户处理返回的序列化json数据。代码如下:#从Flask模块导入jsonifyfromflaskimportjsonify5.PyMySQL的使用操作MySQL的基本流程:建立数据库连接、创建游标对象、执行SQL语句、关闭游标、关闭数据库连接。代码如下:importpymysql项目1.2设计普通用户程序1.2.2设计用户登录程序#连接数据库,参数分别是主机名或IP、用户名、密码、数据库名称、端口号、字符集db=pymysql.connect(host='',user='root',password=‘xxx',db='usermanage',port=3306,charset='utf8mb4')#操作数据库#使用cursor()方法创建一个游标对象curcur=db.cursor()#对数据库执行查询操作try:cur.execute("select*fromdemoTable")result=cur.fetchall()print("demoColumn1","demoColumn2")#关闭数据库连接db.close()项目1.2设计普通用户程序1.2.2设计用户登录程序6.用户登录页面index.html项目1.2设计普通用户程序1.2.2设计用户登录程序7.设计SHA256加密函数用户密码经过加密后存入数据库中,编写函数sha256_crypt实现加密功能,函数如下:defsha256_crypt(s):m=hashlib.sha256()b=s.encode(encoding='utf-8')m.update(b)sm=m.hexdigest()print(sm)returnsm项目1.2设计普通用户程序1.2.2设计用户登录程序8.设计用户登录Web程序用来完成用户登录及注册页面的跳转。用户登录时,要查询数据库,判断表单提交的用户名、密码是否存在,若存在,还需要判断该用户是否为管理员用户,主要结构如下:@app.route('/')defindex():"""用户登录页面"""returnrender_template('index.html')
@app.route('/login/',methods=['POST'])deflogin():"""用户登录"""user=request.form.get('user')pwd=request.form.get('pwd')con=con_db()cu=con.cursor()cu.execute("selectidfromuserwhereuser='%s'andpwd='%s'"%(user,sha256_crypt(pwd)))ifcu.fetchall():session['user']=userifuser=='admin':returnjsonify({'code':2,'msg':'登录成功'})returnjsonify({'code':0,'msg':'登录成功'})returnjsonify({'code':1,'msg':'账号密码错误,登录失败'})项目1.2设计普通用户程序1.2.3设计用户注册程序用户注册界面主要用于实现注册新用户功能。在该页面中,需要填写用户名、邮箱、密码和确认密码,同时要求用户名称必须是数字和字母的组合,email要验证有效性,密码和确认密码要一致。如果信息输入不完整或填写格式不符合要求,都将提示错误。项目1.2设计普通用户程序1.2.3设计用户注册程序1.正则表达式的使用用户在注册时,通过正则表达式验证用户名与邮箱的有效性。代码如下:user_rz=/^[0-9a-zA-Z]+$/#用户名是数字和字母的组合,且不能为空mail_rz=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+$/#有效邮箱项目1.2设计普通用户程序1.2.3设计用户注册程序用户注册页面userreg.html项目1.2设计普通用户程序1.2.3设计用户注册程序设计用户注册程序@app.route('/user_reg/',methods=['POST','GET'])defuser_reg():"""用户注册页面"""returnrender_template('userreg.html')
@app.route('/reg/',methods=['POST'])defreg():"""用户注册"""user=request.form.get('user’)pwd=request.form.get('pwd')email=request.form.get('email')con=con_db()cu=con.cursor()cu.execute("selectidfromuserwhereuser=%s",(user,))ifcu.fetchall():returnjsonify({'code':1,'msg':'用户已存在’})cu.execute("insertintouser(user,pwd,email)values(%s,%s,%s)",(user,sha256_crypt(pwd),email))mit()returnjsonify({'code':0,'msg':'注册成功'})项目1.2设计普通用户程序1.2.4设计信息更新程序用户信息查看页面user.html用户信息更新页面userupdate.html项目1.2设计普通用户程序1.2.4设计信息更新程序设计用户信息查看程序@app.route('/user_index/')defuser_index():"""用户首页"""user=session.get('user')con=con_db()cu=con.cursor(pymysql.cursors.DictCursor)#获取用户信息cu.execute("selectuser,emailfromuserwhereuser=%s",(user,))data=cu.fetchall()ifdata:data=data[0]#返回用户页面returnrender_template('user.html',**data)项目1.2设计普通用户程序1.2.4设计信息更新程序设计用户信息更新程序@app.route('/user_update/')defuser_update():"""用户信息更新页面"""returnrender_template('userupdate.html')@app.route('/put/',methods=['POST','GET'])defput():"""用户信息更新"""con=con_db()cu=con.cursor(pymysql.cursors.DictCursor)user=session.get('user')email=request.form.get('email’)pwd=request.form.get('pwd’)print(user,pwd)ifpwd:cu.execute('updateusersetpwd=%swhereuser=%s',(sha256_crypt(pwd),user))ifemail:cu.execute('updateusersetemail=%swhereuser=%s',(email,user))mit()returnjsonify({'code':0,'msg':'修改成功'})3项目1.3设计管理员程序设计查看与查找用户程序设计删除用户程序设计重置用户密码程序项目1.3设计管理员程序1.3.1设计查看与查找用户程序管理员页面admin.html项目1.3设计管理员程序1.3.1设计查看与查找用户程序管理员程序@app.route('/admin_index/')defadmin_index():"""管理首页"""user=session.get('user')con=con_db()
cu=con.cursor(pymysql.cursors.DictCursor)returnrender_template('admin.html',**{})项目1.3设计管理员程序1.3.1设计查看与查找用户程序管理员程序@app.route('/get_list/',methods=['GET’])defauser():"""用户管理"""user=session.get('user’)sc=request.args.get('sc',None)page=int(request.args.get('page',1))limit=int(request.args.get('limit',10))print(sc)con=con_db()cu=con.cursor(pymysql.cursors.DictCursor)sql='selectcount(*)ctfromuserwhere1=1'sql1='select*fromuserwhere1=1'ifsc:sql+="anduserlike'%{}%'".format(sc)sql1+="anduserlike'%{}%'".format(sc)sql1+='groupbyid'sql1+='limit{},{}'.format((1)*limit,limit)print(sql)print(sql1)cu.execute(sql)ct=cu.fetchall()[0].get('ct’)cu.execute(sql1)data=cu.fetchall()returnjsonify({'code':0,'msg':'获取成功','data':data,'count':ct})项目1.3设计管理员程序1.3.2设计删除用户程序@app.route('/adel/',methods=['POST'])defadel():"""删除用户"""pid=request.form.get('pid')con=con_db()cu=con.cursor(pymysql.cursors.DictCursor)cu.execute("deletefromuserwhereid=%s",(pid,))mit()returnjsonify({'code':0,'msg':'删除成功'})项目1.3设计管理员程序1.3.3设计重置用户密码程序@app.route('/aput/',methods=['POST'])defaput():"""修改用户"""pid=request.form.get('pid')pwd=request.form.get('pwd')con=con_db()cu=con.cursor(pymysql.cursors.DictCursor)cu.execute("updateusersetpwd=%swhereid=%s",(sha256_crypt(pwd),pid))mit()returnjsonify({'code':0,'msg':'修改成功'})4项目1.4部署应用程序到EC2
云端实例将普通用户程序部署到EC2云端实例将管理员程序部署到EC2云端实例项目1.4部署应用程序到EC2云端实例将程序部署到EC2云端实例在项目1.1中,我们已经完成AmazonEC2的创建,在项目1.2中我们已经完成普通用户程序的设计,在项目1.3中我们已经完成管理员程序的设计,接下来将所有开发好的程序上传至EC2云端实例。项目1.4部署应用程序到EC2云端实例将程序部署到EC2云端实例根据本地操作系统的不同,选择SCP命令或PSCP命令将Flask项目文件app传输到EC2云端实例。项目1.4部署应用程序到EC2云端实例将程序部署到EC2云端实例(1)如果本地计算机操作系统是Linux或macOSX使用SCP将文件传输到云服务器。例如,如果私有密钥文件的名称为my-key-pair,要传输的文件为SampleFile.txt,实例的用户名为my-instance-user-name,实例的公有DNS名称为my-instance-public-dns-name,在终端窗口中,输入以下命令可将该文件复制到my-instance-user-name主目录中:scp-i/path/my-key-pair.pem/path/SampleFile.txtmy-instance-user-name@my-instance-public-dns-name:~项目1.4部署应用程序到EC2云端实例将程序部署到EC2云端实例(2)如果本地计算机操作系统是Windows使用PuTTY安全复制客户端将文件传输到云服务器。PuTTY安全复制客户端(PSCP)是一个命令行工具,可用于在Windows计算机和Linux实例之间传输文件。要使用PSCP,需要使用通过PuTTYgen转换生成的私有密钥(.ppk文件)以及Linux实例的公有DNS名称。以下示例将Sample_file.txt文件从Windows计算机上的C:\驱动器传输到AmazonLinux实例上的my-instance-user-name主目录。要传输文件,可使用以下命令:pscp-iC:\path\my-key-pair.ppkC:\path\Sample_file.txtmy-instance-user-name@my-instance-public-dns-name:/home/my-instance-user-name/Sample_file.txt5项目1.5综合实训—我的云服务器项目功能项目要点项目实施项目测试项目1.5综合实训
我的云服务器项目功能这个项目由三部分组成。1.AmazonEC2Linux虚拟机的创建把Web开发程序部署在EC2Linux实例上,创建我们的云服务器。2.AmazonRDSMySQL数据库的创建3.普通用户与管理员Web程序开发这个Web程序向普通用户与管理员用户提供不同的功能。普通用户可以注册并登录,登录后能查看到用户信息,并且可修改注册邮箱与密码。数据库中内置管理员admin用户,管理员登录后可查看所有注册用户信息,可删除用户,也可以修改用户密码。项
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学五年级小数乘除法计算题汇编
- 科创板开通知识测试参考答案
- 语文试卷 天津市滨海新区五所重点中学高三毕业班联考语文试卷
- 保险行业助理的工作总结和技能要求
- 骨骼疾病护理工作总结
- 家具家居行业技术尝试改造
- 生物医药行业技术工作总结
- 纸制品行业业务员工作总结
- 游戏界面设计师的交互体验和游戏设计
- 《机械防烟方式》课件
- 新版标准日本语(初级)上下册单词默写表
- 网络安全保密教育知识普及培训课件
- 小学语文-部编版四年级语文上册第六单元习作:记一次游戏教学设计学情分析教材分析课后反思
- 面向5G网络建设的站点供电技术应用与发展
- 装饰公司与项目经理合作协议
- 接待上级领导工作总结
- 《新时代高校劳动教育理论与实践教程》教案 第9课 强化劳动安全意识
- 小学数学项目化教学这:基于教学评一体化的大单元整体设计《测量》
- 洗涤剂常用原料
- ACC-AHA-HRSICD治疗适应证指南
- 共享单车电动车加盟城市代理协议模板
评论
0/150
提交评论