校园网站建设的重要性信誉好的苏州网站建设

web/2025/9/29 20:06:17/文章来源:
校园网站建设的重要性,信誉好的苏州网站建设,五 网站开发总体进度安排,九江城市投资建设有限公司网站1、Django中写一个后端接口#xff0c;给HTML提供dicom文件接口的方式 1、首先创建django项目 1、下载安装跨域的包 pip3 install django-cors-headers2、使用pycharm创建一个Django项目 3、点击创建在另一个窗口#xff0c;这个都无所谓#xff0c;怎么都行#xff0c;…1、Django中写一个后端接口给HTML提供dicom文件接口的方式 1、首先创建django项目 1、下载安装跨域的包 pip3 install django-cors-headers2、使用pycharm创建一个Django项目 3、点击创建在另一个窗口这个都无所谓怎么都行就是打开这个项目 4、创建成功的项目就是下面这个样子 5、先修改几个选项后面好操作 下面是我的settings设置我把修改的地方标注出来 Django settings for pacsdemo project.Generated by django-admin startproject using Django 3.2.18.For more information on this file, see https://docs.djangoproject.com/en/3.2/topics/settings/For the full list of settings and their values, see https://docs.djangoproject.com/en/3.2/ref/settings/# 添加这个import os import os from pathlib import Path# Build paths inside the project like this: BASE_DIR / subdir. BASE_DIR Path(__file__).resolve().parent.parent# Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/# SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY django-insecure-uv!_mka##8#citwx_q$o71)!8tfaa-6wyrb!h84fmm--d# SECURITY WARNING: dont run with debug turned on in production! DEBUG True # 设置所有IP都可以访问局域网 ALLOWED_HOSTS [*]# Application definition# 添加跨域设置 INSTALLED_APPS [django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,pacs.apps.PacsConfig,corsheaders # 跨域设置 ]MIDDLEWARE [django.middleware.security.SecurityMiddleware,django.contrib.sessions.middleware.SessionMiddleware,django.middleware.common.CommonMiddleware,django.middleware.csrf.CsrfViewMiddleware,django.contrib.auth.middleware.AuthenticationMiddleware,django.contrib.messages.middleware.MessageMiddleware,django.middleware.clickjacking.XFrameOptionsMiddleware, ]# 新添加的设置 CORS_ALLOW_CREDENTIALS True CORS_ALLOW_ALL_ORIGINS False CORS_ORIGIN_WHITELIST [http://192.168.0.30:8000,http://localhost:63409, ] CORS_ORIGIN_ALLOW_ALL TrueCORS_ALLOW_METHODS (DELETE,GET,OPTIONS,PATCH,POST,PUT,VIEW )CORS_ALLOW_HEADERS (accept,accept-encoding,authorization,content-type,dnt,origin,user-agent,x-csrftoken,x-requested-with, )ROOT_URLCONF pacsdemo.urlsTEMPLATES [{BACKEND: django.template.backends.django.DjangoTemplates,DIRS: [BASE_DIR / templates],APP_DIRS: True,OPTIONS: {context_processors: [django.template.context_processors.debug,django.template.context_processors.request,django.contrib.auth.context_processors.auth,django.contrib.messages.context_processors.messages,],},}, ]WSGI_APPLICATION pacsdemo.wsgi.application# Database # https://docs.djangoproject.com/en/3.2/ref/settings/#databases# 连接本地的mysql数据库 DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: pacsdemo, # 你的数据库名称USER: ******, # 你的账户PASSWORD: ******, #你的密码HOST: 127.0.0.1,PORT: 3306,} }# Password validation # https://docs.djangoproject.com/en/3.2/ref/settings/#auth-password-validatorsAUTH_PASSWORD_VALIDATORS [{NAME: django.contrib.auth.password_validation.UserAttributeSimilarityValidator,},{NAME: django.contrib.auth.password_validation.MinimumLengthValidator,},{NAME: django.contrib.auth.password_validation.CommonPasswordValidator,},{NAME: django.contrib.auth.password_validation.NumericPasswordValidator,}, ]# Internationalization # https://docs.djangoproject.com/en/3.2/topics/i18n/# 设置时间上海的时间 LANGUAGE_CODE zh-HansTIME_ZONE Asia/ShanghaiUSE_I18N TrueUSE_L10N TrueUSE_TZ False# Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/3.2/howto/static-files/# 加载静态文件的设置 STATIC_URL /static/ STATICFILES_DIRS [os.path.join(BASE_DIR, static), ]# Default primary key field type # https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-fieldDEFAULT_AUTO_FIELD django.db.models.BigAutoField 6、把表结构映射到数据库中 连接数据库的设置没有这个设置数据库会连接失败 import pymysql pymysql.install_as_MySQLdb()7、在终端运行两行命令 python manage.py makemigrations8、运行第二行命令 python manage.py migrate9、第一步完成数据库连接成功基础设置完成 2、写前端页面并且和后端接口传递单个dicom文件并且显示出来 1、先添加一个路由 from django.conf.urls import include2、然后在pacs中写urls.py里面的内容 from django.urls import pathfrom . import viewsurlpatterns [path(index/, views.index), # 设置首页内容path(read/, views.read), # 读dicom文件path(read1/, views.read1), # 读dicom文件 ] 3、写这个index的方法在views.py中 from django.shortcuts import render from django.http import HttpResponse, FileResponse# Create your views here. def index(request):return render(request, index.html)def read(request):file open(static/dicom/C9214289, rb)response FileResponse(file)response[Content-Type] application/octet-streamresponse[Content-Disposition] attachment;filename1.dcmreturn responsedef read1(request):file open(static/dicom/C9214530, rb)response FileResponse(file)response[Content-Type] application/octet-streamresponse[Content-Disposition] attachment;filename2.dcmreturn response 4、写index.html的内容 我写的这个html直接放进去就可以看其中的内容你可以通过cornerstone.js查看 !DOCTYPE html html langen headmeta charsetUTF-8titlepacs/titlescript srchttps://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js/scriptscript typetext/javascript// 阻止右键点击事件的默认行为document.addEventListener(contextmenu, function (event) {event.preventDefault();});/scriptscript// 监听双击事件并阻止默认的缩放行为document.addEventListener(dblclick, function (event) {event.preventDefault();});document.addEventListener(touchstart, function (event) {if (event.touches.length 1) {event.preventDefault();}}, {passive: false});/script /head body divh2全部都是鼠标左键的操作/h2button idwwwc切换窗宽窗位/buttonbutton idlength切换测量长度/buttonbutton idrotate旋转/buttonbutton idmagnify透视/buttonbutton idpan移动/buttonbr/button idscaleoverlay尺度/buttonbutton idzoom放大/buttonbutton idangle测量角度/buttonbutton idarrowannotate添加备注/buttonbutton idbidirectional交叉线/buttonbr/button idcobbangle心胸比/buttonbutton idellipticalroi圆/buttonbutton idfreehandroi随便画/buttonbutton idprobe探针/buttonbutton idrectangleroi方形/buttonbr/button idcirclescissors画圆/buttonbutton idrectanglescissors画正方形/button /div div iddicomImage stylewidth: 512px;height: 512px;position: absolute/div/body !-- 触控的方法 -- script srchttps://unpkg.com/hammerjs2.0.8/hammer.js/script !-- 基石包,核心包 -- script srchttps://unpkg.com/cornerstone-core2.6.1/dist/cornerstone.js/script !-- Math包数学包 -- script srchttps://unpkg.com/cornerstone-math0.1.10/dist/cornerstoneMath.min.js/script !-- 图片解析包解析dcm文件的 -- script srchttps://unpkg.com/cornerstone-wado-image-loader4.13.2/dist/cornerstoneWADOImageLoader.bundle.min.js/script !-- 解析普通图的方法 -- script srchttps://unpkg.com/cornerstone-web-image-loader2.1.1/dist/cornerstoneWebImageLoader.min.js/script !-- 写好方法的包 -- script srchttps://unpkg.com/cornerstone-tools6.0.10/dist/cornerstoneTools.js/script !-- 解析dicom的json信息 -- script srchttps://unpkg.com/dicom-parser1.8.21/dist/dicomParser.min.js/scriptscriptcornerstoneTools.external.cornerstone cornerstone;cornerstoneTools.external.cornerstoneMath cornerstoneMath;cornerstoneTools.external.Hammer Hammer;cornerstoneWADOImageLoader.external.dicomParser dicomParser;cornerstoneWADOImageLoader.external.cornerstone cornerstone;// dicomweb 网页上的一种解析的包 http开头的网址 ,获取dicom的文件并且显示出来var imageId wadouri:http://127.0.0.1:8000/read;var imageIds [wadouri:http://127.0.0.1:8000/read, wadouri:http://127.0.0.1:8000/read1]// 定义stack滚动工具const StackScrollMouseWheelTool cornerstoneTools.StackScrollMouseWheelTool// Add our tool, and set its modeconst StackScrollTool cornerstoneTools.StackScrollTool//define the stack// 设置一个栈const stack {currentImageIdIndex: 0,imageIds}// 默认初始化toolscornerstoneTools.init()// 获取页面显示的dicom idvar element document.getElementById(dicomImage);cornerstone.enable(element)// 测量长度const LengthTool cornerstoneTools.LengthTool;cornerstoneTools.addTool(LengthTool)// cornerstoneTools.setToolActive(Length, {mouseButtonMask: 1})// wwwcconst WwwcTool cornerstoneTools.WwwcTool;cornerstoneTools.addTool(WwwcTool)// cornerstoneTools.setToolActive(Wwwc, {mouseButtonMask: 1})// 旋转const RotateTool cornerstoneTools.RotateTool;cornerstoneTools.addTool(RotateTool)// 透视const MagnifyTool cornerstoneTools.MagnifyTool;cornerstoneTools.addTool(MagnifyTool)// 移动const PanTool cornerstoneTools.PanTool;cornerstoneTools.addTool(PanTool)// 尺度const ScaleOverlayTool cornerstoneTools.ScaleOverlayTool;cornerstoneTools.addTool(ScaleOverlayTool)// 放大const ZoomTool cornerstoneTools.ZoomTool;cornerstoneTools.addTool(cornerstoneTools.ZoomTool, {// Optional configurationconfiguration: {invert: false,preventZoomOutsideImage: false,minScale: .1,maxScale: 20.0,}});// 测量角度const AngleTool cornerstoneTools.AngleTool;cornerstoneTools.addTool(AngleTool)// 添加备注const ArrowAnnotateTool cornerstoneTools.ArrowAnnotateTool;cornerstoneTools.addTool(ArrowAnnotateTool)// 交叉线const BidirectionalTool cornerstoneTools.BidirectionalTool;cornerstoneTools.addTool(BidirectionalTool)// 心胸比const CobbAngleTool cornerstoneTools.CobbAngleTool;cornerstoneTools.addTool(CobbAngleTool)// 圆const EllipticalRoiTool cornerstoneTools.EllipticalRoiTool;cornerstoneTools.addTool(EllipticalRoiTool)// 画笔const FreehandRoiTool cornerstoneTools.FreehandRoiTool;cornerstoneTools.addTool(FreehandRoiTool)// 探针const ProbeTool cornerstoneTools.ProbeTool;cornerstoneTools.addTool(ProbeTool)// 正方形长方形const RectangleRoiTool cornerstoneTools.RectangleRoiTool;cornerstoneTools.addTool(RectangleRoiTool)// 直接画圆const CircleScissorsTool cornerstoneTools.CircleScissorsTool;cornerstoneTools.addTool(CircleScissorsTool)// 通过正方形涂const RectangleScissorsTool cornerstoneTools.RectangleScissorsTool;cornerstoneTools.addTool(RectangleScissorsTool)// 鼠标中键滚动cornerstone.loadAndCacheImage(imageIds[0]).then(function (image) {cornerstone.displayImage(element, image)cornerstoneTools.addStackStateManager(element, [stack])cornerstoneTools.addToolState(element, stack, stack)})cornerstoneTools.addTool(StackScrollMouseWheelTool)cornerstoneTools.setToolActive(StackScrollMouseWheel, {})function disableAllTools() {// 取消左键的功能cornerstoneTools.setToolDisabled(Length)cornerstoneTools.setToolDisabled(Wwwc)cornerstoneTools.setToolDisabled(Rotate)cornerstoneTools.setToolDisabled(Magnify)cornerstoneTools.setToolDisabled(ScaleOverlay)cornerstoneTools.setToolDisabled(Zoom)cornerstoneTools.setToolDisabled(Angle)cornerstoneTools.setToolDisabled(ArrowAnnotate)cornerstoneTools.setToolDisabled(Pan)cornerstoneTools.setToolDisabled(Bidirectional)cornerstoneTools.setToolDisabled(CobbAngle)cornerstoneTools.setToolDisabled(EllipticalRoi)cornerstoneTools.setToolDisabled(FreehandRoi)cornerstoneTools.setToolDisabled(Probe)cornerstoneTools.setToolDisabled(RectangleRoi)cornerstoneTools.setToolDisabled(CircleScissors)cornerstoneTools.setToolDisabled(RectangleScissors)}document.getElementById(wwwc).addEventListener(click, function () {// 取消左键原来的功能disableAllTools();// 激活窗宽窗位cornerstoneTools.setToolActive(Wwwc, {mouseButtonMask: 1})})document.getElementById(length).addEventListener(click, function () {// 取消左键原来的功能disableAllTools();// 激活测量长度cornerstoneTools.setToolActive(Length, {mouseButtonMask: 1})})document.getElementById(rotate).addEventListener(click, function () {// 取消左键原来的功能disableAllTools();// 激活旋转cornerstoneTools.setToolActive(Rotate, {mouseButtonMask: 1})})document.getElementById(magnify).addEventListener(click, function () {// 取消左键原来的功能disableAllTools();// 激活透视cornerstoneTools.setToolActive(Magnify, {mouseButtonMask: 1})})document.getElementById(pan).addEventListener(click, function () {// 取消左键原来的功能disableAllTools();// 激活 移动cornerstoneTools.setToolActive(Pan, {mouseButtonMask: 1})})document.getElementById(scaleoverlay).addEventListener(click, function () {// 取消左键原来的功能disableAllTools();// 激活 尺子cornerstoneTools.setToolActive(ScaleOverlay, {mouseButtonMask: 1})})document.getElementById(zoom).addEventListener(click, function () {// 取消左键原来的功能disableAllTools();// 激活 放大cornerstoneTools.setToolActive(Zoom, {mouseButtonMask: 1})})document.getElementById(angle).addEventListener(click, function () {// 取消左键原来的功能disableAllTools();// 激活 角度cornerstoneTools.setToolActive(Angle, {mouseButtonMask: 1})})document.getElementById(arrowannotate).addEventListener(click, function () {// 取消左键原来的功能disableAllTools();// 激活 添加备注cornerstoneTools.setToolActive(ArrowAnnotate, {mouseButtonMask: 1})})document.getElementById(bidirectional).addEventListener(click, function () {// 取消左键原来的功能disableAllTools();// 激活交叉线cornerstoneTools.setToolActive(Bidirectional, {mouseButtonMask: 1})})document.getElementById(cobbangle).addEventListener(click, function () {// 取消左键原来的功能disableAllTools();// 激活心胸比cornerstoneTools.setToolActive(CobbAngle, {mouseButtonMask: 1})})document.getElementById(ellipticalroi).addEventListener(click, function () {// 取消左键原来的功能disableAllTools();// 激活 圆cornerstoneTools.setToolActive(EllipticalRoi, {mouseButtonMask: 1})})document.getElementById(freehandroi).addEventListener(click, function () {// 取消左键原来的功能disableAllTools();// 激活 随便画cornerstoneTools.setToolActive(FreehandRoi, {mouseButtonMask: 1})})document.getElementById(probe).addEventListener(click, function () {// 取消左键原来的功能disableAllTools();// 激活 探针cornerstoneTools.setToolActive(Probe, {mouseButtonMask: 1})})document.getElementById(rectangleroi).addEventListener(click, function () {// 取消左键原来的功能disableAllTools();// 激活 方形cornerstoneTools.setToolActive(RectangleRoi, {mouseButtonMask: 1})})document.getElementById(circlescissors).addEventListener(click, function () {// 取消左键原来的功能disableAllTools();// 激活 方形cornerstoneTools.setToolActive(CircleScissors, {mouseButtonMask: 1})})document.getElementById(rectanglescissors).addEventListener(click, function () {// 取消左键原来的功能disableAllTools();// 激活 方形cornerstoneTools.setToolActive(RectangleScissors, {mouseButtonMask: 1})})/script/html5、启动项目 1、第一种通过pycharm打开 2、第二种命令行的方式 python manage.py runserver5、查看网页 其中的功能都可以进行操作后续我进行优化默认滚动条是切换dicom http://127.0.0.1:8000/index/6、成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/84075.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站源代码制作云南省建设厅网站首页

随着互联网的全面普及,基于互联网的电子商务也应运而生,并在近年来获得了巨大的发展,成为一种全新的商务模式,被许多经济专家认为是新的经济增长点。 作为一种全新的商务模式,它有很大的发展前途,同时&…

蒙古文网站建设汇报材料seo站外推广业务外包

问题 json包里使用的时候,结构体里的变量不加tag能不能正常转成json里的字段? 怎么答 如果变量首字母小写,则为private。无论如何不能转,因为取不到反射信息。如果变量首字母大写,则为public。 不加tag&#xff0c…

网站的建设与维护工资代码网站建设

假设有a,b两个字符串,现对a字符串进行修改使得a字符串与b字符串完全一样;要求是使用最小的操作次数,使a,b字符串相等。操作有三种,分别是插入一个字符,删除一个字符,替换一个字符。 …

做网站app需多少钱网站建设推广顾问是什么意思

1、什么叫分布式压测? 分布式压测:模拟多台机器向目标机器产生压力,模拟几万用户并发访问 2、分布式压测原理:如下 3、更多补充.....待添加 转载于:https://www.cnblogs.com/yoyoblogs/p/11071774.html

海口建站价格无锡电子商城网站设计

先亮源代码:https://github.com/axzxs2001/Asp.NetCoreExperiment/tree/master/Asp.NetCoreExperiment/SwaggerDemo这篇博文不是对asp.net core中使用Swagger作介绍,因为社区博客作了详细说明。今天主要说一下Swagger在Ocelot网关权限验证模式下的访问&a…

深圳网站建设公司收费标准邢台123生活最新帖子

你看今天 sublime text3 我以前有没有3059 的 它有支持3065该。 因此,为了支持subl 对中国输入法的实现 ,下面的操作步骤把我的记录供大家使用 有一个完整的教程: http://www.360doc.com/content/14/0329/08/13087748_364608018.shtml# 可…

杭州网站建设推荐q479185700上墙wordpress美化文章标题

ExceptionHandler的作用 ExceptionHandler是Spring框架提供的一个注解,用于处理应用程序中的异常。当应用程序中发生异常时,ExceptionHandler将优先地拦截异常并处理它,然后将处理结果返回到前端。该注解可用于类级别和方法级别,…

个人网站设计流程图卓越建站快车

通过Logfile查看仿真统计 一次性了解仿真统计! Post-Processing > Manage Results > Logfile 利用CPU Threads、Mesh Cells、Time Steps以及Total Solver Time等Logfile,可以一目了然地了解仿真统计。 (1)点击Post-Processing选项卡…

网上书城网站开发的结论与不足跨境建站平台

在使用spark时,根据集群资源情况和任务数据量等,合理设置参数,包括但不限于以下: 参数说明masteryarn E-MapReduce 使用 Yarn 的模式yarn-client:等同于 –-master yarn —deploy-mode client, 此时不需要…

网站设计与开发范本小程序制作简单教程

一、数组转List 方式一 通过 Arrays.asList(strArray) 方式,将数组转换List,但不能对List增删,只能查改,否则抛异常,例子如下: public static void main(String[] args) {//创建一个字符串数组String[] …

精品资料网官方网站优化网站内链

1. 什么是spring的Aop 在进行源码解读之前,大家需要对Spring的Aop有基础的认识和理解,参考文章:Spring之AOP理解与应用-CSDN博客 2. 源码解读 接下来,我们对AOP的源码进行一个解读。 2.1 动态代理 如果你已经对spring的Aop已经有…

广东省住房和建设网站wordpress千万级访问

✈联合体 🚀联合体的类型声明 像结构体一样,联合体也是由一个或者多个成员构成,这些成员可以不同的类型。 但是编译器只为最大的成员分配足够的内存空间。联合体的特点是所有成员共用同一块内存空间。所以联合体也叫:共用体。 给…

建设企业网站的需求分析ueditor wordpress4.4

1.双系统安装我选择安装的windows10和Linux Mint 18.2索尼娅首先我们需要先安装win10,可以采用360压缩直接见将win10镜像解压到u盘当做系统盘使用(lInux也是一样)安装WIndows系统大家应该都会我主要说一下关于lInux的安装首先如果我们有固态硬盘的化可以考虑将其分成…

北京建设信源资讯有限公司网站网站 域名空间 调试

Si24R2F是针对IOT应用领域推出的新款超低功耗2.4G内置NVM单发射芯片。广泛应用于2.4G有源活体动物耳标,带实时测温计步功能。相较于Si24R2E,Si24R2F增加了温度监控、自动唤醒间隔功能;发射功率由7dBm增加到12dBm,距离更远&#xf…

教育教学成果展示网站建设凡科网站建设网页怎么建

STM32CubeMX学习笔记-USB接口使用(CDC虚拟串口) 一、USB简介二、新建工程1. 打开 STM32CubeMX 软件,点击“新建工程”2. 选择 MCU 和封装3. 配置时钟4. 配置调试模式 三、USB3.1 参数配置3.3 配置时钟3.4 USB Device 四、生成代码五、查看端口…

网页布局照着别的网站做会侵权吗网站建设一个月多少钱

前言 因为自己写的demo需要历史天气的统计数据,但是国内很难找到免费的api接口,很多都需要付费和审核。而国外的网站虽然免费但需要提前知道观测站,城市id等信息。所以就有了这么一篇文章的诞生。 准备工作 库 作用superagent发送请求supera…

电话销售做网站推销做湘菜的网站

本文介绍了如何利用 STM32 微控制器读取和解析 NTC(Negative Temperature Coefficient)热敏电阻的数值。首先,我们将简要介绍 NTC 热敏电阻的原理和特性。接下来,我们将详细讨论如何设计电路连接和采用合适的 STM32 外设进行数值读…

想要找个网站做环评公示怎么用视频做网站首页

目录 一、rest api 1. 新建索引 2. 删除索引 3. 插入单条数据 4. 更新单条数据 5. 删除单条数据 6. 查询数据 二、python elasticsearch库 1. 新建索引 一、rest api 1. 新建索引 请求方式:PUT 请求URL:http://ip/(your_index_nam…

好看的免费的小说网站模板寿阳网站建设

实验17 配置无线网络实验 1.实验拓扑图 Table PC0 和 Table PC1 最开始可能还会连Access Point0,无影响后面会改 名称接口IP地址网关地址Router0fa0/0210.10.10.1fa0/1220.10.10.2Tablet PC0210.10.10.11Tablet PC1210.10.10.12Wireless互联网220.10.10.2LAN192.16…

企业级网站开发与部署wordpress网站静态化

前言 关于axios全局loading的封装博主已经发过一次了,这次是在其基础上增加了token的无感刷新。 token无感刷新流程 首次登录的时候会获取到两个token(AccessToken,RefreshToken)持久化保存起来(localStorage方案&a…