问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

django项目如何加密交付(django代码加密)

提问网友 发布时间:49分钟前
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
1个回答
热心网友 回答时间:2024-09-19 06:00

导读:本篇文章首席CTO笔记来给大家介绍有关django项目如何加密交付的相关内容,希望对大家有所帮助,一起来看看吧。

Django部署——uwsgi+Nginx(超详细)

环境:

python3.6

centos7

Django1.11

用Django写了个小网站,只能在自己本地跑一跑!这怎么行?听说可以部署在云服务器上,这样别人就可以访问了!

从哪儿开始?就从Django开始吧!老规矩,按步骤:

这里不讲Django项目实施过程,假设你已经写了一个Django项目,并且在本地127.0.0.1:8000能够跑起来。喏,给你个参考,项目大概长这样:

也就是项目目录下的settings.py文件,主要强调几个地方:

①关闭DEBUG模式:

②修改ALLOWED_HOSTS:

③配置静态文件存放路径:

修改好配置之后执行:

这个没什么说的。。。在自己的云服务器上装好这两个工具

安装好uwsgi后最好验证一下,验证方法:

创建一个test.py文件:

启动uwsgi服务器:

如果可以正常启动而不报错那就应该没问题,不放心的话再在终端验证一下:

在uwsgi.ini里进行如下配置:

找到nginx的配置文件夹,centos7的nginx配置文件在/etc/nginx下,该路径下有一个nginx.conf总配置文件,还有两个文件夹./conf.d、./default.d,我们将nginx.conf复制一份到conf.d文件夹下,命名为nginx.conf(或者项目名.conf)进行如下修改(根据中文注释进行相应配置即可):

进入uwsgi.ini文件夹下执行:

在终端执行:

参考资料:

刘江的博客

博客园

知乎问答

无名Blog

自强学堂Django教程

Django文档

empty_xlBlog

Django源码阅读(一)项目的生成与启动

诚实的说,直到目前为止,我并不欣赏django。在我的认知它并不是多么精巧的设计。只是由功能堆积起来的"成熟方案"。但每一样东西的崛起都是时代的选择。无论你多么不喜欢,但它被需要。希望有一天,python能有更多更丰富的成熟方案,且不再被诟病性能和可维护性。(屁话结束)

取其精华去其糟粕,django的优点是方便,我们这次源码阅读的目的是探究其方便的本质。计划上本次源码阅读不会精细到每一处,而是大体以功能为单位进行解读。

django-adminstartprojectHelloWorld即可生成django项目,命令行是exe格式的。

manage.py把参数交给命令行解析。

execute_from_command_line()通过命令行参数,创建一个管理类。然后运行他的execute()。

如果设置了reload,将会在启动前先check_errors。

check_errors()是个闭包,所以上文结尾是(django.setup)()。

直接看最后一句settings.INSTALLED_APPS。从settings中抓取app

注意,这个settings还不是我们项目中的settings.py。而是一个对象,位于django\conf\__init__.py

这是个Settings类的懒加载封装类,直到__getattr__取值时才开始初始化。然后从Settings类的实例中取值。且会讲该值赋值到自己的__dict__上(下次会直接在自己身上找到,因为__getattr__优先级较低)

为了方便debug,我们直接写个run.py。不用命令行的方式。

项目下建个run.py,模拟runserver命令

debug抓一下setting_mole

回到setup()中的最后一句apps.populate(settings.INSTALLED_APPS)

开始看apps.populate()

首先看这段

这些App最后都会封装成为AppConfig。且会装载到self.app_configs字典中

随后,分别调用每个appConfig的import_models()和ready()方法。

App的装载部分大体如此

为了方便debug我们改写下最后一句

res的类型是Commanddjango.contrib.staticfiles.management.commands.runserver.Commandobjectat0x00000101ED5163A0

重点是第二句,让我们跳到run_from_argv()方法,这里对参数进行了若干处理。

用pycharm点这里的handle会进入基类的方法,无法得到正确的走向。实际上子类Commond重写了这个方法。

这里分为两种情况,如果是reload重载时,会直接执行inner_run(),而项目启动需要先执行其他逻辑。

django项目启动时,实际上会启动两次,如果我们在项目入口(manage.py)中设置个print,会发现它会打印两次。

第一次启动时,DJANGO_AUTORELOAD_ENV为None,无法进入启动逻辑。会进入restart_with_reloader()。

在这里会将DJANGO_AUTORELOAD_ENV置为True,随后重启。

第二次时,可以进入启动逻辑了。

这里创建了一个django主线程,将inner_run()传入。

随后本线程通过reloader.run(django_main_thread),创建一个轮询守护进程。

我们接下来看django的主线程inner_run()。

当我们看到wsgi时,django负责的启动逻辑,就此结束了。接下来的工作交由wsgi服务器了

这相当于我们之前在fastapi中说到的,将fastapi的app交由asgi服务器。(asgi也是django提出来的,两者本质同源)

那么这个wsgi是从哪来的?让我们来稍微回溯下

这个settings是一个对象,在之前的操作中已经从settings.py配置文件中获得了自身的属性。所以我们只需要去settings.py配置文件中寻找。

我们来寻找这个get_wsgi_application()。

它会再次调用setup(),重要的是,返回一个WSGIHandler类的实例。

这就是wsgiapp本身。

load_middleware()为构建中间件堆栈,这也是wsgiapp获取setting信息的唯一途径。导入settings.py,生成中间件堆栈。

如果看过我之前那篇fastapi源码的,应该对中间件堆栈不陌生。

app入口→中间件堆栈→路由→路由节点→endpoint

所以,wsgiapp就此构建完毕,服务器传入请求至app入口,即可经过中间件到达路由进行分发。

django创建第一个项目时,输入django-admin.pystartprojectdjangoweb后,会提示:这个是什么原因啊?

国内网上找了一圈那答案水的为我们的科技担忧呀最新解,仅供参考:

方法一(麻烦不推荐):检查pathon路径写了没。没写的创建工程时django-admin.py前要加python。看看有没有安装django下的bin路径写到系统path里,然后把django安装的bin/django-admin.py文件拷到你想创建的文件夹下。方法二:写django下的bin路径写到系统path里,命令改为“django-admin(没有py后缀!)startprojectweb-name“。

如何在服务器上部署Django项目并使其在后台一直运行

前几天老师让我把一个Django项目(爬虫网页)放到校园内网上,但是我想先用自己的服务器来尝试一下。之前刚好有在DigitalOcean上买过服务器用来运行ss脚本,平时服务器一直放着没啥用,所以就拿它来试验一下。

废话不多说,第一步通过WinSCP软件把Django文件传到服务器上。

在服务器中安装Django需要的环境和我所需要的Python第三方库。

以上所有步骤完成后,还需要进行一步操作,这是我经历的一个坑。打开Django文件目录中的settings.py,把ALLOWED_HOSTS=[]改为ALLOWED_HOSTS=["*"]。

在服务器中打开到manage.py所在的目录,输入命令:

python3manage.pyrunserver0.0.0.0:8000

然后按下回车,在浏览器中输入:该服务器IP地址:8000,大功告成!

Attention:

1.python3不是特定的,是根据你的Django项目所需要的环境指定的。

2.8000是端口号,可以修改。

如果想要Django项目一直运行,关闭终端后还在运行,即需要运行如下命令,nohupcommand,command即位上文所说的python3manage.pyrunserver0.0.0.0:8000。

结语:以上就是首席CTO笔记为大家整理的关于django项目如何加密交付的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

电脑腾讯的网页游戏玩不了怎么回事?求大神解决?别的网页游戏都能玩 三衣一钵故事记载 三衣是什么意思 公司不让员工休假只让请假怎么办,本来合同上是说的一个月四天假,休了... 重庆某公司规定员工请假超3天需自费缴社保,你如何看待这项奇葩规定... 接通电源语音报小冀已上线是什么记录仪 鱼缸养青苔还需要经常换水么 有什么好的电视剧如特种兵之火凤凰,薛平贵与王宝钏 脂肪代谢慢吃什么效果最快 代谢脂肪吃什么 吃什么脂肪排出来的快 吃什么减脂肪最快最有效 常吃鹅蛋有什么好处与坏处? 鹅蛋每天吃几个合适 海信27x7h适合上网课吗 怎么在网页版qq上登录空间? QQ网页版要怎么下载,怎么操作? 广播电视编导专业省统考考什么? 编导阐述具体例子 男性口气臭是什么原因 口臭是由什么原因引起的 六安茶、安茶、六安瓜片区别大着呢!你还没弄清楚吗? 基金卖出什么时候拿到钱 MuMu模拟器12如何多开? mumu模拟器12如何关闭Hyper-V/VBS、内核隔离-mumu模拟器12关闭Hyper... 网易mumu模拟器安装magisk以及安装证书的补充 什么植物的花语是爱情? 白色鞋底变黑了怎么办 Linux环境以及工具(yum/vim/gcc/g++/gdb/make/Makefile) 打印机如何暂停打印? 华为手环7血氧饱和度怎么测 iphone15双十一能便宜多少 蝙蝠是吉利还是不吉利 喝中药几天后不能喝酒 吞食异物的急救处理 吊扇三叶和五叶区别有哪些 加拿大这种转的窗户把手坏了,怎么修啊?只能往回关,不能打开了。里面的... 给别人做装修设计,风格是中式的,用什么木材档次高点? 闪电如果击中自来水厂,洗澡的人会死吗? 为什么微信群不能发广告? 漫步者蓝牙耳机连接上没有声音怎么办?
Top