Django + vue (一) Django部署

2023-11-16

一、Django 部署,采用REST方式,较简约。

     1、 安装django          

     pip install django==2.2.4 =i https://pypi.tuna.tsinghua.edu.cn/simple

    2、 创建个目录pyvue,并在该目录下再创建两个目录,一个pyvue,一个是app,并创建manage.py文件。

 

          因为python web我只做后台计算服务,所以不准备前端页面目录。前端使用vue。

          manage.py文件内容如下:

import os
import sys
def main():
    import sys
    import django
    import os
    #DJANGO_SETTINGS_MODULE = 'pyvue.settings'
    # 设置环境变量
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'pyvue.settings')
    django.setup()
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django."
        ) from exc
    execute_from_command_line(sys.argv)


if __name__ == '__main__':
    main()

    3、在app目录下,创建文件views.py,编辑该文件,代码如下: 

#-*- coding:utf-8 -*-
from django.http import HttpResponse
import json
import logging
#import datetime 
from django.shortcuts import render, get_object_or_404
from django.views.decorators.csrf import csrf_exempt

log = logging.getLogger('scripts')

#视图处理函数
@csrf_exempt  #规避跨域攻击
def home(request):
    return HttpResponse('Hello World! Python & Vue! the Home Page!')

@csrf_exempt  #规避跨域攻击
def compute(request):       
    #rtn = get_object_or_404(Model)
    username = request.GET.get('username')
    #user = request.POST.get('user')
    filename = request.GET.get('filename')
    algorithm = request.GET.get('algorithm')    
    #filename = request.filename                     #指定的excel文件名
    #user     = request.user
    #algorithm  = request.algorithm                  #指定的算法
    ##根据user上传的文件filename,使用algorithm进行计算
    #...
    #...
    #得出计算结果后
    #return HttpResponse(json.dumps({'username':username,'filename:':filename,'algorithm':algorithm}))    
    lsRtn ='用户'+username+'输入文件'+filename+',使用算法'+algorithm +',计算结果为: 结果'
    lsRtnFile = 'result.xls'                        #计算结果文件
    return HttpResponse(json.dumps({'rtnval':lsRtn,'outfile':lsRtnFile})) #如何准确地返回给明确的用户结果?

      定义了两个方法:

     (1) home : 在访问首页时默认在浏览器显示"Hello World!..." 。

     (2) compute : 用于获取用户输入,并输出json格式文本串。

4、在pyvue目录下,创建settings.py和urls.py文件,如下图:      

      (1) 编辑settings.py文件,代码如下:              

import os
# 设置项目根目录
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
print(BASE_DIR)
# 加密签名
SECRET_KEY = 'b!iohd&sss@#42s#k9t01_k^52uludvw8@h0)1fnez^8l' #随便设置一个Key。
DEBUG = True  # 设置当前为调试模式

#本项目的应用都在目录app里。
INSTALLED_APPS = ['app','corsheaders']  # 添加应用,其中,'corsheaders'为了跨域访问而设置。

#设置中间件
MIDDLEWARE = [    
    'corsheaders.middleware.CorsMiddleware',  #为跨域访问增加
    'django.middleware.common.CommonMiddleware', #为跨域访问增加
]
#跨域增加忽略
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
CORS_ORIGIN_WHITELIST = () 
CORS_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 = 'pyvue.urls'  # 设置项目路由文件urls
LANGUAGE_CODE = 'zh-Hans' #中文环境
TIME_ZONE = 'Asia/Shanghai' #时区
#使用django自带的数据库sqlite3,如果其它数据库得另外配置。
DATABASES = {
    'default':{
        'ENGINE':'django.db.backends.sqlite3',
        'NAME':os.path.join(BASE_DIR,'db.sqlite3')
    }
}

        该段代码设置了路由文件ROOT_URLCONF,也设置了跨域设置,这个非常重要;

       对于跨域设置,还需要在安装django-cors-headers。

       pip install django-cors-headers -i https://pypi.tuna.tsinghua.edu.cn/simple

       代码中,LANGUAGE_CODE设置了中文环境,TIME_ZONE设置了中国时区。

     (2) urls.py文件编辑:     

#导入相关的模块
from django.conf import settings
from django.http import HttpResponse
from django.urls import path
from app.views import compute,home,computeobj

#设置路由
urlpatterns = [
    path('', home, name='home'),
    path('compute', compute , name='compute'), #不可以写成 path('/compute',...)
]

  

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django + vue (一) Django部署 的相关文章

  • 与区域指示符字符类匹配的 python 正则表达式

    我在 Mac 上使用 python 2 7 10 表情符号中的标志由一对表示区域指示符号 https en wikipedia org wiki Regional Indicator Symbol 我想编写一个 python 正则表达式来在
  • 如何用python脚本控制TP LINK路由器

    我想知道是否有一个工具可以让我连接到路由器并关闭它 然后从 python 脚本重新启动它 我知道如果我写 import os os system ssh l root 192 168 2 1 我可以通过 python 连接到我的路由器 但是
  • 将html数据解析成python列表进行操作

    我正在尝试读取 html 网站并提取其数据 例如 我想查看公司过去 5 年的 EPS 每股收益 基本上 我可以读入它 并且可以使用 BeautifulSoup 或 html2text 创建一个巨大的文本块 然后我想搜索该文件 我一直在使用
  • Python 中的舍入浮点问题

    我遇到了 np round np around 的问题 它没有正确舍入 我无法包含代码 因为当我手动设置值 而不是使用我的数据 时 返回有效 但这是输出 In 177 a Out 177 0 0099999998 In 178 np rou
  • 处理 Python 行为测试框架中的异常

    我一直在考虑从鼻子转向行为测试 摩卡 柴等已经宠坏了我 到目前为止一切都很好 但除了以下之外 我似乎无法找出任何测试异常的方法 then It throws a KeyError exception def step impl contex
  • Python getstatusoutput 替换不返回完整输出

    我发现了这个很棒的替代品getstatusoutput Python 2 中的函数在 Unix 和 Windows 上同样有效 不过我觉得这个方法有问题output被构建 它只返回输出的最后一行 但我不明白为什么 任何帮助都是极好的 def
  • 使用字典映射数据帧索引

    为什么不df index map dict 工作就像df column name map dict 这是尝试使用index map的一个小例子 import pandas as pd df pd DataFrame one A 10 B 2
  • 使用 xlrd 打开 BytesIO (xlsx)

    我正在使用 Django 需要读取上传的 xlsx 文件的工作表和单元格 使用 xlrd 应该可以 但因为文件必须保留在内存中并且可能不会保存到我不知道如何继续的位置 本例中的起点是一个带有上传输入和提交按钮的网页 提交后 文件被捕获req
  • Python 2:SMTPServerDisconnected:连接意外关闭

    我在用 Python 发送电子邮件时遇到一个小问题 me my email address you recipient s email address me email protected cdn cgi l email protectio
  • Python beautifulsoup 仅限 1 级文本

    我看过其他 beautifulsoup 得到相同级别类型的问题 看来我的有点不同 这是网站 我正试图拿到右边那张桌子 请注意表的第一行如何展开为该数据的详细细分 我不想要那个数据 我只想要最顶层的数据 您还可以看到其他行也可以展开 但在本例
  • 如何使用 Mysql Python 连接器检索二进制数据?

    如果我在 MySQL 中创建一个包含二进制数据的简单表 CREATE TABLE foo bar binary 4 INSERT INTO foo bar VALUES UNHEX de12 然后尝试使用 MySQL Connector P
  • 如何通过 TLS 1.2 运行 django runserver

    我正在本地 Mac OS X 机器上测试 Stripe 订单 我正在实现这段代码 stripe api key settings STRIPE SECRET order stripe Order create currency usd em
  • Jupyter Notebook 找不到 Python 模块

    不知道发生了什么 但每当我使用 ipython 氢 原子 或 jupyter 笔记本时都找不到任何已安装的模块 我知道我安装了 pandas 但笔记本说找不到 我应该补充一点 当我正常运行脚本时 python script py 它确实导入
  • Python3 在 DirectX 游戏中移动鼠标

    我正在尝试构建一个在 DirectX 游戏中执行一些操作的脚本 除了移动鼠标之外 我一切都正常 是否有任何可用的模块可以移动鼠标 适用于 Windows python 3 Thanks I used pynput https pypi or
  • 如何使用原始 SQL 查询实现搜索功能

    我正在创建一个由 CS50 的网络系列指导的应用程序 这要求我仅使用原始 SQL 查询而不是 ORM 我正在尝试创建一个搜索功能 用户可以在其中查找存储在数据库中的书籍列表 我希望他们能够查询 书籍 表中的 ISBN 标题 作者列 目前 它
  • 为什么 Pickle 协议 4 中的 Pickle 文件是协议 3 中的两倍,而速度却没有任何提升?

    我正在测试 Python 3 4 我注意到 pickle 模块有一个新协议 因此 我对 2 个协议进行了基准测试 def test1 pickle3 open pickle3 wb for i in range 1000000 pickle
  • python import inside函数隐藏现有变量

    我在我正在处理的多子模块项目中遇到了一个奇怪的 UnboundLocalError 分配之前引用的局部变量 问题 并将其精简为这个片段 使用标准库中的日志记录模块 import logging def foo logging info fo
  • 使用for循环时如何获取前一个元素? [复制]

    这个问题在这里已经有答案了 可能的重复 Python 循环内的上一个和下一个值 https stackoverflow com questions 1011938 python previous and next values inside
  • 模拟pytest中的异常终止

    我的多线程应用程序遇到了一个错误 主线程的任何异常终止 例如 未捕获的异常或某些信号 都会导致其他线程之一死锁 并阻止进程干净退出 我解决了这个问题 但我想添加一个测试来防止回归 但是 我不知道如何在 pytest 中模拟异常终止 如果我只
  • 更改 Tk 标签小部件中单个单词的颜色

    我想更改 Tkinter 标签小部件中单个单词的字体颜色 我知道可以使用文本小部件来实现与我想要完成的类似的事情 例如使单词 YELLOW 显示为黄色 self text tag config tag yel fg clr yellow s

随机推荐

  • java8 stream 转换list、map、set

    一 Collection Collections collect Collector Collectos Collection是Java集合的祖先接口 Collections是java util包下的一个工具类 内涵各种处理集合的静态方法
  • 基于FPGA的正弦波发生器设计与实现

    基于FPGA的正弦波发生器设计与实现 摘要 本文介绍了一种基于FPGA的正弦波发生器的设计与实现 通过使用FPGA的数字信号处理功能 可以实现高精度 高性能的正弦波生成 文章首先介绍了DDS Direct Digital Synthesis
  • vs2008中,在OCX控件中应用doc/view基本步骤

    1 利用向导创建一个MFC ActiveX Control控件CMyOCX 2 在工程中加入ActivDoc头文件和执行文件 class CActiveXDocTemplate public CSingleDocTemplate enum
  • 阿里-淘菜菜一面(电话面试)面经

    上来我先给面试官打预防针 我说我准备时间不长 可能不太行 意思是想推迟一段时间再面试 他让我别紧张 面试时间定下来不容易 就先直接面试 问题如下 1 在学校还是在家里 课程怎么样了 在学校 学分修完了 目前在学技术 2 自我介绍 人工智能学
  • Android LayoutInflater原理分析,带你一步步深入了解View(一)

    相信接触Android久一点的朋友对于LayoutInflater一定不会陌生 都会知道它主要是用于加载布局的 而刚接触Android的朋友可能对LayoutInflater不怎么熟悉 因为加载布局的任务通常都是在Activity中调用se
  • 数字化转型背景-数字化转型网

    数字化转型网szhzsw cn 数字化转型是指企业或组织将传统业务模式 流程 技术和文化等方面与数字技术相融合 实现数字化升级和转型的过程 数字化转型的背景有以下几个方面 技术发展 随着科技的不断进步 各种数字技术不断涌现 包括人工智能 物
  • Android Switch控件修改样式

    Android中自带的Switch控件在很多时候总觉得和整体系统风格不符 很多时候 自定义Switch是一种方法 但其实不用这么麻烦 安卓自带的Switch通过修改一些属性 也可以达到和自定义Switch差不多的一个效果 个人感觉 Swit
  • 对java中char的取值范围思考

    主要说一下我遇到的一个问题 就是网上关于char字符的取值范围定义 有的说是0 255 有的说是 u0000 uffff 其实 这两种说法都对 我们都知道 java中给char字符的解释是十六位 双字节 也就是按照补码的方式寻求取值范围 就
  • 延时任务-基于redis zset的完整实现

    所谓的延时任务给大家举个例子 你买了一张火车票 必须在30分钟之内付款 否则该订单被自动取消 订单30分钟不付款自动取消 这个任务就是一个延时任务 我之前已经写过2篇关于延时任务的文章 完整实现 通过DelayQueue实现延时任务 延时任
  • Elasticsearch --- 向es中导入数据

    一 从文件导入 用django启动 def zi dr request f open c txt r encoding utf 8 action index c12 type doc source title i strip 去掉 空 fo
  • 关于ES集群规模规划

    在搭建正式的生产集群之前 充分做好硬件和服务器配置以及集群规划是重中之重 磨刀不误砍柴工 硬件配置推荐 内存 ES排序以及聚合都是高度需求内存的 单机 单节点 64GB是很理想的配置 32GB或16GB也很常见 不推荐低于8GB 性价比较低
  • Elastic-Job - 分布式定时任务框架

    2019独角兽企业重金招聘Python工程师标准 gt gt gt Elastic Job是ddframe中dd job的作业模块中分离出来的分布式弹性作业框架 去掉了和dd job中的监控和ddframe接入规范部分 该项目基于成熟的开源
  • STM32移植FATFS时处理 warning: #188-D: enumerated type mixed with another type

    在STM32上移植FATFS时disk read 函数返回类型是DRESULT 而DRESULT是一个枚举类型 所以老是会提醒 warning 188 D enumerated type mixed with another type 主要
  • 前端歌谣的刷题之路-第二十一题-css单位二

    目录 前言 题目 核心代码 总结 前言 我是歌谣 歌谣的意志是永恒的 放弃很容易 但是坚持一定很酷 本题目源自于牛客网 微信公众号前端小歌谣 题目 请将html模块div元素的宽度和高度设置为html根元素字体大小的4倍 注意 只需在css
  • 实现TextView垂直滚动以及监听

    由于新的项目中在广告轮播用到了垂直滚动显示 所以也当学习 自己定义了一个垂直滚动的view以及监听 用到TextSwitcher和ViewFactory TextSwitcher 字面理解是文字交换器 是ViewSwitcher的子类 从V
  • 【转】你在读博士期间明白的最深刻的道理是什么?

    写在前面 读博不是跟着老师学知识 都读到博士阶段了 知识的学习方法应该早已经熟练掌握 也早应该形成了一套成熟的 适合自己的知识学习方法 基础学科知识应该由自我驱动 自学来完成 那么读博期间的目标应该是培养什么 学会什么 读博的这4 6年一个
  • Express初学之入门

    1 Express简介 基于Node的极简MVC框架 提供灵活的路由功能 提供强大的中间件机制 内核极小 扩展性很好 使用广泛 2 路由机制 Express概念 定义了Api的地址 请求 响应方式 方法 天然支持HTTP Method 中的
  • grep 函数

    grep函数 如果你是个Perl的新手 你可以先跳过下面的两段 直接到 Grep vs loops 样例这一部分 放心 在后面你还会遇到它 grep BLOCK LIST grep EXPR LIST grep 函数会根据 LIST 中的元
  • zsh: command not found: flutter

    因为苹果笔记本重新安装了系统 需要重新安装flutter环境 这里记录一下flutter在安装过程中出现的问题 问题如下 zsh command not found flutter 解决步骤 1 打开open zshrc 2 如果没有就新建
  • Django + vue (一) Django部署

    一 Django 部署 采用REST方式 较简约 1 安装django pip install django 2 2 4 i https pypi tuna tsinghua edu cn simple 2 创建个目录pyvue 并在该目录