首页 > 编程语言 >python独立脚本应用Django项目的环境

python独立脚本应用Django项目的环境

时间:2023-08-24 20:11:41浏览次数:55  
标签:脚本 加密 项目 python Django django password

一、需求说明

  一直用 Django 在开发一个网站项目,其中的注册用户和登录,都是使用Django自带的认证系统。主要是对密码的加密,在注册或者登录的时候,前端传递多来的密码,我会使用Django的set_password()方法在加密一次

    

  经过加密后的数据库中的数据样子如下:

    

  现在我有另外一个需求,需要单独写一个脚本,独立于这个Django项目,要实现的功能,就是在通过我单独写的python3,让用户通过这个脚本可以快读的创建Django项目中的用户。其实需求很简单,就是通过python脚本,往Django数据库中写入数据而已,但是有一个困难点,就是密码要借用Django中的环境,不是说自己按照django的加密规则,自己加密就行了,因为这个加密的过程中,使用到Django项目中settings中的加盐参数,所以必须还要获取Django项目的运行环境。

 

二、源码解释

  为什么我使用的set_password(), 加密之后就必须要获取原来Django项目的环境呢?我们看一下源码就明白了了

    

   在set_password()函数内部有调用了make_password()函数,我们继续看源码

    

   因为在注册的时候的密码有加盐,登录的时候,需要同样的加盐规则,所以这里我在注册账号和密码的时候,需要使用Django项目中的这个环境

 

三、独立脚本引用Django环境

  1、import django

  2、import os

  3、将项目路径添加到系统路径下

# 将项目目录添加到系统路径下
sys.path.append('/home/root/projects/mcloud/src/backend')

  说明:我的项目路径就是:/home/root/projects/mcloud/src/backend,各位替换成自己的路径即可

    

  4、将Django项目中的settings文件添加到环境变量中

os.environ['DJANGO_SETTINGS_MODULE'] = "mcloud.settings"

  5、django 启动

django.setup()

 

四、案例

  1、导入需要的django模块

from django.contrib.auth import authenticate
from django.contrib.auth.hashers import make_password

  2、使用Django 环境创建我需要的密码

 password = make_password(input_password)

  3、在使用这个密码就可以写入数据库,正常登录了。

 

五、抛转引玉

  我这里只是一个python脚本使用Django环境的案例,万变不离其宗,主要就是

  1、将Django项目路径加入到系统环境,方便脚本找到项目的路径

  2、将Django项目中的settings文件添加到环境变量中

  3、django.setup()

 

    

 

标签:脚本,加密,项目,python,Django,django,password
From: https://www.cnblogs.com/Se7eN-HOU/p/17655058.html

相关文章

  • Python 入门的第三天
    pycharm的简单使用注释语法变量与常量垃圾回收机制数据类型(8种基本数据类型)首先:我们学习如何修改主题,步骤为:打开pycharm,File,Settings,Appearance&Behavior,Appearance,Theme2.如何切换解释器File,Settings,Project:django_lock,PythonInterpreter 3.如何创......
  • Python全栈开发从入门到入土
    Python全栈开发从入门到入土持续更新中~~~希望大家多多支持!【Python基础从入坑到放弃】【一】Python基础入门【一】计算机基础编程语言的介绍什么是语言什么是编程语言为什么会出现编程语言什么是编程为什么要有编程计算机组成原理计算机的五大组成部分......
  • python的with的用法
    with语句是Python中用于处理资源的一种便捷方式。它提供了一种在使用完资源后自动关闭或释放资源的方法,无论代码块是否正常执行或是否发生异常。使用with语句的基本语法如下: withexpression[asvariable]:#代码块 在with语句中,expression是一个返回上下文管理器......
  • shell 脚本的探测web
    web服务的探测。#!/bin/bashport=`netstat-lnp|grep80`if[-z"port"];thenecho"notstartservice.";exit;fiweb_server=`echo$port|awk-F'/''{print$2}'|awk-F:'{print$1}'`case$web_serv......
  • Python怎么通过url下载网络文件到本地
    以下代码演示Python怎么从网络下载一个文件至本地并保存在当前文件夹downloadimportosimportrequestsfromurllib.parseimporturlparsedefdownload_file(url):response=requests.get(url,stream=True)response.raise_for_status()download_dir='do......
  • Python3.6升级到3.9
    1.升级openssl到1.1.1ncd/data/softwarescdopenssl-1.1.1n./configmake&&makeinstallln-s/usr/local/lib64/libssl.so.1.1/usr/lib64/libssl.so.1.1ln-s/usr/local/lib64/libcrypto.so.1.1/usr/lib64/libcrypto.so.1.1mv/usr/bin/openssl/usr/bin/o......
  • python 在windows下open打开文件默认编码
    open(self.data_path):python在用open打开文件时,如果默认不指定编码encoding="UTF-8"则会用windows默认的编码,一般为GBK,有的开源代码并未指定编码,但是UTF8的文件,全局修改一下,设置windows环境变量:PYTHONUTF8=1,参考:https://dev.to/methane/python-use-utf-8-mode-on-windows-212i......
  • python-优化算法应用于20种工程优化设计问题
     20种(全网最全)限制性工程设计问题(全网唯一python版):获取链接:https://mbd.pub/o/bread/ZJ2WlZls%1.Threebartrussdesign三杆桁架设计%2.Weldedbeamstructureproblem焊接梁结构问题%3.tension/Compressionspringdesignproblem张力/压缩弹簧设计问题%4.SpeedRe......
  • Python数据结构:哈希表
    哈希散列(哈希)是电脑科学中一种对资料的处理方法,通过某种特定的函数/算法(称为散列函数/算法)将要检索的项与用来检索的索引(称为散列,或者散列值)关联起来,生成一种便于搜索的数据结构(称为散列表)。哈希表是什么哈希表(散列表)是根据键(Key)直接访问内存存储位置的数据结构。根据键(Key)值......
  • Visual Studio Code 修改终端执行python脚本路径的办法
    正常安装完VSCode执行python都是默认在python的安装目录。修改terminal执行的路径在当前文件夹路径; 搜索 python.terminal.executeInFileDir 勾选即可。 ......