あなたのパスワードを保存します
55092 ワード
ブログページへようこそ.
これは、新しいプロジェクトをdjangoフレームワークに関連してここに私は、ユーザーが自分のアカウントを作成することができますし、すべてのパスワードを保存することができますdjangoのセキュリティでウェブサイトを作成するつもりです.
ユーザーは、このウェブサイト上のPCの、ソーシャルメディアの、スマートフォンの等のパスワードを保存することができます.
まず、このコマンドを使用したDjangoプロジェクトを作成します.
これは、新しいプロジェクトをdjangoフレームワークに関連してここに私は、ユーザーが自分のアカウントを作成することができますし、すべてのパスワードを保存することができますdjangoのセキュリティでウェブサイトを作成するつもりです.
ユーザーは、このウェブサイト上のPCの、ソーシャルメディアの、スマートフォンの等のパスワードを保存することができます.
あるこう
まず、このコマンドを使用したDjangoプロジェクトを作成します.
django-admin startproject save_password
今すぐあなたのプロジェクトのアプリを作成します.python manage.py startapp main
設定を開きます.Pyファイルとあなたのアプリケーションをこのファイルに追加します.INSTALLED_APPS = [
#some apps are already installed
'main'
]
新しいURLを作成します.あなたのアプリケーションのPYファイルとプロジェクトのURLに追加します.このようにfrom django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('main.urls'))
]
スーパーユーザを作成します.python manage.py createsuperuser
#add name- admin
#add email- [email protected]
#add password- admin
これでこうする.python manange.py makemigrations
python manage.py migrate
モデル作成from django.db import models
# Create your models here.
class User(models.Model):
name = models.CharField(max_length=100)
pwd = models.CharField(max_length=500)
def __str__(self):
return self.name
class SavePassword(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=50)
pwd = models.CharField(max_length=1000)
hide_pwd = models.CharField(max_length=1000)
def __str__(self):
return self.title
管理者にモデルを加えてください.Pyファイルfrom django.contrib import admin
from .models import User, SavePassword
# Register your models here.
class UserAdmin(admin.ModelAdmin):
list_display = ['name', 'pwd']
class SavePasswordAdmin(admin.ModelAdmin):
list_display = ['user','title', 'pwd', 'hide_pwd']
admin.site.register(User, UserAdmin)
admin.site.register(SavePassword, SavePasswordAdmin)
ビューコード.Pyファイルfrom django.shortcuts import render, redirect
from django.http import HttpResponse
from django.views import View
from .models import User, SavePassword
from django.contrib.auth.hashers import check_password, make_password
# Create your views here.
class Index(View):
def get(self, request):
if 'user' in request.session:
get_save_pwd = SavePassword.objects.filter(user__name=request.session['user']).order_by('-id')
account_pwd = User.objects.get(name=request.session['user'])
params = {'passwords': get_save_pwd, 'user_account': account_pwd}
return render(request, 'show_pwd.html', params)
else:
return render(request, 'index.html')
def post(self, request):
uname = request.POST['user_name']
pwd = request.POST['password']
if uname and pwd:
create_user = User.objects.create(name=uname, pwd=pwd)
create_user.save()
return render(request, 'index.html')
else:
error = "Please Fill the fields."
return render(request, 'show_pwd.html', {'error': error})
class Login(View):
def get(self, request):
return render(request, 'login.html')
def post(self, request):
uname = request.POST['uname']
pwd = request.POST['pwd']
try:
user_obj = User.objects.get(name=uname, pwd=pwd)
request.session['user'] = user_obj.name
except:
return redirect('login')
return redirect('index')
class Logout(View):
def get(self, request):
del request.session['user']
return redirect('index')
class SavePwd(View):
def get(self, request):
return render(request, 'save_pwd.html')
def post(self, request):
title = request.POST['title']
pwd = request.POST['pwd']
makePwd = make_password(pwd)
user_obj = User.objects.get(name=request.session['user'])
savePwd = SavePassword.objects.create(user=user_obj, title=title, pwd=pwd, hide_pwd=makePwd)
savePwd.save()
return redirect('save_pwd')
class Edit(View):
def get(self, request, id):
pwd_id_obj = SavePassword.objects.get(id=id)
params = {'obj': pwd_id_obj}
return render(request, 'edit.html', params)
def post(self,request, id):
pwd_obj = SavePassword.objects.get(id=id)
new_title = request.POST['title']
new_pwd = request.POST['pwd']
new_pwd_hash = make_password(new_pwd)
pwd_obj.title = new_title
pwd_obj.pwd = new_pwd
pwd_obj.hide_pwd = new_pwd_hash
pwd_obj.save()
return redirect('index')
アプリのURLでURLを確認します.Pyファイルfrom django.urls import path
from . import views
urlpatterns = [
path('', views.Index.as_view(), name='index'),
path('login', views.Login.as_view(), name='login'),
path('logout', views.Logout.as_view(), name='logout'),
path('save_password', views.SavePwd.as_view(), name='save_pwd'),
path('<int:id>/edit/', views.Edit.as_view(), name='edit'),
]
テンプレート
ベース.HTML
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
{% load static %}
<title>Safe Password</title>
</head>
<body class="bg-dark" style="background-image: url({% static 'security.jpg' %}); background-repeat: no-repeat; background-size: cover;">
<div class="container-fluid bg-dark">
<header class="d-flex justify-content-center py-3">
<ul class="nav nav-pills">
<li class="nav-item"><a href="{% url 'index' %}" class="nav-link" aria-current="page">Home</a></li>
{% if request.session.user %}
<li class="nav-item"><a href="{% url 'save_pwd' %}" class="nav-link">Save a new Password</a></li>
<li class="nav-item"><a href="{% url 'logout' %}" class="nav-link">Logout</a></li>
{% else %}
<li class="nav-item"><a href="#" class="nav-link" data-bs-toggle="modal" data-bs-target="#exampleModal1">Signup</a></li>
<li class="nav-item"><a href="{% url 'login' %}" class="nav-link">Login</a></li>
{% endif %}
</ul>
</header>
</div>
{% if error %}
<div class="alert alert-danger" role="alert">
{{error}}
</div>
{% endif %}
<!-- Signup Modal -->
<div class="modal fade" id="exampleModal1" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Create an Account</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<form action="{% url 'index' %}" method="post">
{% csrf_token %}
<div class="container">
<label for="uname">Name</label>
<input type="text" id="uname" class="form-control" name="user_name">
</div>
<br>
<div class="container">
<label for="pwd">Password</label>
<input type="password" id="pwd" class="form-control" name="password">
</div>
<br>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
<input type="submit" class="btn btn-primary" value="Signup">
</form>
</div>
</div>
</div>
</div>
{% block body %}
{% endblock %}
<!-- Option 1: Bootstrap Bundle with Popper -->
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
</body>
</html>
インデックス.HTML
{% extends 'base.html' %}
{% block body %}
<div class="container w-50" style="margin-top: 200px;">
<div class="card rounded" style="padding: 50px;">
<p style="text-align: center; font-family: sans-serif; font-weight: bold; font-size: 25px;">Save your Password here and get Full Security.</p>
</div>
</div>
{% endblock %}
ログイン.HTML
{% extends 'base.html' %}
{% block body %}
<div class="container w-25 rounded border my-5 bg-dark py-3 px-3">
<h2 class="text-light">Login</h2>
<form action="{% url 'login' %}" method="post">
{% csrf_token %}
<div class="mb-3">
<label for="exampleFormControlInput1" class="form-label text-light">Name</label>
<input type="text" class="form-control" name="uname" id="exampleFormControlInput1">
</div>
<div class="mb-3">
<label for="exampleFormControlTextarea1" class="form-label text-light">Password</label>
<input type="password" class="form-control" name="pwd" id="exampleFormControlTextarea1" name="">
</div>
<div class="mb-3">
<input type="submit" class="btn btn-primary" id="exampleFormControlTextarea1" value="Login">
</div>
</form>
</div>
{% endblock %}
Savechen PWDHTML
{% extends 'base.html' %}
{% block body %}
<div class="container px-5 py-5 border">
<div class="card w-50 px-5 py-5 mx-auto">
<h2>Save Password</h2>
<hr>
<form action="{% url 'save_pwd' %}" method="post">
{% csrf_token %}
<label for="title">Title</label>
<input type="text" id="title" class="form-control" name="title">
<br>
<label for="password">Password</label>
<input type="password" id="password" class="form-control" name="pwd">
<br>
<input type="submit" value="Save Password" class="btn btn-primary">
</form>
</div>
</div>
{% endblock %}
昭和大HTML
{% extends 'base.html' %}
{% block body %}
<h3 class="text-light">You Login as: <span class="text-warning">{{request.session.user}}</span></h3>
<div class="container my-5 px-5 py-5 border">
<div class="row">
<div class="col-sm-6 w-100 text-center">
<div class="card">
<div class="card-body">
<h5 class="card-title">Account Password</h5>
<p class="card-text"><strong id="para">***********</strong></p>
<a class="btn btn-danger" id="trigger" onclick="show_pwd()">Show</a>
</div>
</div>
</div>
{% for password in passwords %}
<div class="col-sm-6 w-50 my-2">
<div class="card">
<div class="card-body">
<h5 class="card-title text-danger">{{password.title}}</h5>
<hr>
<p class="card-text"><strong>Decoded: </strong>{{password.pwd}} <a href="{% url 'edit' password.id %}" style="float: right; margin-right: 20px;" class="btn btn-sm btn-primary">Edit</a></p>
<p class="card-text"><strong>Encoded: </strong>{{password.hide_pwd}}</p>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
<script type="text/javascript">
var a = "{{user_account.pwd}}";
var p = document.getElementById('para');
var btn = document.getElementById('trigger');
var is_active = 0;
function show_pwd() {
if(is_active == 0){
p.innerHTML = a;
btn.innerHTML = "Hide";
is_active = 1;
}
else{
p.innerHTML = "*************";
btn.innerHTML = "Show";
is_active = 0;
}
}
</script>
{% endblock %}
エディット.HTML
{% extends 'base.html' %}
{% block body %}
<div class="container px-5 py-5 border">
<div class="card w-50 px-5 py-5 mx-auto">
<h2>Edit Password</h2>
<hr>
<form action="{% url 'edit' obj.id %}" method="post">
{% csrf_token %}
<label for="title">Title</label>
<input type="text" id="title" value="{{obj.title}}" class="form-control" name="title">
<br>
<label for="password">Password</label>
<input type="password" id="password" value="{{obj.pwd}}" class="form-control" name="pwd">
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" id="btn_show" onclick="my_fun()">
<label class="form-check-label">
Show Password
</label>
</div>
<br>
<input type="submit" value="Save Password" class="btn btn-primary">
</form>
</div>
</div>
<script type="text/javascript">
var btn = document.getElementById('btn_show');
var pwd = document.getElementById('password');
function my_fun(){
var status = 0;
if (pwd.type == 'password'){
pwd.type = 'text';
}
else{
pwd.type = 'password';
}
}
</script>
{% endblock %}
他のブログを読んでくださいを使用して辞書アプリケーションを作成する
マドバンバンハリ・ 5月16日・ 2分読む
#django
#python
#html
オンラインビデオ共有ウェブサイト
マドバンバンハリ・ Jan 6・ 22分読む
#django
#python
Reference
この問題について(あなたのパスワードを保存します), 我々は、より多くの情報をここで見つけました https://dev.to/madhubankhatri/save-your-passwords-a-django-project-3h5pテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol