部分代码结构调整

sh_branch
liangliangyy 4 years ago
parent 4928052969
commit eeb42e2ffd

@ -2,28 +2,21 @@
# encoding: utf-8
"""
@version: ??
@author: liangliangyy
@license: MIT Licence
@contact: liangliangyy@gmail.com
@site: https://www.lylinux.net/
@software: PyCharm
@file: utils.py
@time: 2017/1/19 上午2:30
"""
from django.core.cache import cache
from django.contrib.sites.models import Site
import logging
import os
import random
import string
import uuid
from hashlib import sha256
import mistune
import requests
from django.contrib.sites.models import Site
from django.core.cache import cache
from mistune import escape, escape_link
from pygments import highlight
from pygments.lexers import get_lexer_by_name
from pygments.formatters import html
import logging
import requests
import uuid
import os
from pygments.lexers import get_lexer_by_name
logger = logging.getLogger(__name__)
@ -187,6 +180,11 @@ def send_email(emailto, title, content):
content=content)
def generate_code() -> str:
"""生成随机数验证码"""
return ''.join(random.sample(string.digits, 6))
def parse_dict_to_url(dict):
from urllib.parse import quote
url = '&'.join(['{}={}'.format(quote(k, safe='/'), quote(v, safe='/'))

@ -13,12 +13,12 @@
@time: 2016/11/20 下午3:16
"""
from django import forms
from django.forms import widgets
from django.core.exceptions import ValidationError
from django.contrib.auth import get_user_model, password_validation
from django.contrib.auth.forms import AuthenticationForm, UserCreationForm
from django.core.exceptions import ValidationError
from django.forms import widgets
from . import email
from . import utils
from .models import BlogUser
@ -116,7 +116,7 @@ class ForgetPasswordForm(forms.Form):
def clean_code(self):
code = self.cleaned_data.get("code")
error = email.verify(
error = utils.verify(
email=self.cleaned_data.get("email"),
code=code,
)

@ -1,12 +1,12 @@
from django.urls import reverse
from django.conf import settings
from django.utils import timezone
from django.test import Client, RequestFactory, TestCase
from django.urls import reverse
from django.utils import timezone
from accounts.models import BlogUser
from DjangoBlog.utils import *
from accounts.models import BlogUser
from blog.models import Article, Category
from . import email
from . import utils
# Create your tests here.
@ -120,14 +120,14 @@ class AccountTest(TestCase):
def test_verify_email_code(self):
to_email = "admin@admin.com"
code = email.generate_code()
email.set_code(to_email, code)
email.send(to_email, code)
code = generate_code()
utils.set_code(to_email, code)
utils.send_verify_email(to_email, code)
err = email.verify("admin@admin.com", code)
err = utils.verify("admin@admin.com", code)
self.assertEqual(err, None)
err = email.verify("admin@123.com", code)
err = utils.verify("admin@123.com", code)
self.assertEqual(type(err), str)
def test_forget_password_email_code_success(self):
@ -153,8 +153,8 @@ class AccountTest(TestCase):
self.assertEqual(resp.content.decode("utf-8"), "错误的邮箱")
def test_forget_password_email_success(self):
code = email.generate_code()
email.set_code(self.blog_user.email, code)
code = generate_code()
utils.set_code(self.blog_user.email, code)
data = dict(
new_password1=self.new_test,
new_password2=self.new_test,
@ -195,8 +195,8 @@ class AccountTest(TestCase):
)
def test_forget_password_email_code_error(self):
code = email.generate_code()
email.set_code(self.blog_user.email, code)
code = generate_code()
utils.set_code(self.blog_user.email, code)
data = dict(
new_password1=self.new_test,
new_password2=self.new_test,

@ -1,20 +1,14 @@
import typing
import random
import string
from datetime import timedelta
from django.core.cache import cache
from DjangoBlog.utils import send_email
_code_ttl = timedelta(minutes=5)
def generate_code() -> str:
"""生成随机数验证码"""
return ''.join(random.sample(string.digits, 6))
def send(to_mail: str, code: str, subject: str = "邮件验证码"):
def send_verify_email(to_mail: str, code: str, subject: str = "邮件验证码"):
"""发送重设密码验证码
Args:
to_mail: 接受邮箱

@ -1,30 +1,29 @@
import logging
import threading
from django.conf import settings
from django.contrib import auth
from django.contrib.auth import REDIRECT_FIELD_NAME
from django.contrib.auth import get_user_model
from django.contrib.auth import logout
from django.contrib.auth.forms import AuthenticationForm
from django.contrib.auth.hashers import make_password
from django.http import HttpResponseRedirect, HttpResponseForbidden
from django.http.request import HttpRequest
from django.http.response import HttpResponse
from django.shortcuts import render
from django.contrib.auth import logout
from django.views.generic import FormView, RedirectView
from django.contrib.auth import get_user_model
from django.shortcuts import get_object_or_404
from django.http import HttpResponseRedirect, HttpResponseForbidden
from django.shortcuts import render
from django.urls import reverse
from django.contrib.auth.forms import AuthenticationForm
from django.contrib.auth import REDIRECT_FIELD_NAME
from django.views.decorators.csrf import csrf_protect
from django.contrib import auth
from django.views.decorators.cache import never_cache
from django.utils.decorators import method_decorator
from django.views.decorators.debug import sensitive_post_parameters
from django.utils.http import is_safe_url
from django.conf import settings
from django.views import View
from django.contrib.auth.hashers import make_password
from django.views.decorators.cache import never_cache
from django.views.decorators.csrf import csrf_protect
from django.views.decorators.debug import sensitive_post_parameters
from django.views.generic import FormView, RedirectView
from DjangoBlog.utils import send_email, get_sha256, get_current_site
from DjangoBlog.utils import send_email, get_sha256, get_current_site, generate_code
from . import utils
from .forms import RegisterForm, LoginForm, ForgetPasswordForm, ForgetPasswordCodeForm
from . import email
from .models import BlogUser
logger = logging.getLogger(__name__)
@ -69,7 +68,7 @@ class RegisterView(FormView):
content=content)
url = reverse('accounts:result') + \
'?type=register&id=' + str(user.id)
'?type=register&id=' + str(user.id)
return HttpResponseRedirect(url)
else:
return self.render_to_response({
@ -136,8 +135,8 @@ class LoginView(FormView):
redirect_to = self.request.POST.get(self.redirect_field_name)
if not is_safe_url(
url=redirect_to, allowed_hosts=[
self.request.get_host()]):
url=redirect_to, allowed_hosts=[
self.request.get_host()]):
redirect_to = self.success_url
return redirect_to
@ -197,11 +196,8 @@ class ForgetPasswordEmailCode(View):
return HttpResponse("错误的邮箱")
to_email = form.cleaned_data["email"]
code = email.generate_code()
email.set_code(to_email, code)
# 异步执行
t = threading.Thread(target=email.send, args=(to_email, code))
t.start()
code = generate_code()
utils.send_verify_email(to_email, code)
utils.set_code(to_email, code)
return HttpResponse("ok")

@ -1,14 +1 @@
#!/usr/bin/env python
# encoding: utf-8
"""
@version: ??
@author: liangliangyy
@license: MIT Licence
@contact: liangliangyy@gmail.com
@site: https://www.lylinux.net/
@software: PyCharm
@file: __init__.py.py
@time: 2017/8/27 上午11:40
"""

@ -1,19 +1,6 @@
#!/usr/bin/env python
# encoding: utf-8
from haystack.query import SearchQuerySet
"""
@version: ??
@author: liangliangyy
@license: MIT Licence
@contact: liangliangyy@gmail.com
@site: https://www.lylinux.net/
@software: PyCharm
@file: blogapi.py
@time: 2017/8/27 上午11:40
"""
from blog.models import Article, Category, Tag
from haystack.query import EmptySearchQuerySet, SearchQuerySet
from blog.models import Article, Category
class BlogApi():

@ -1,30 +1,17 @@
#!/usr/bin/env python
# encoding: utf-8
"""
@version: ??
@author: liangliangyy
@license: MIT Licence
@contact: liangliangyy@gmail.com
@site: https://www.lylinux.net/
@software: PyCharm
@file: commonapi.py
@time: 2017/9/2 上午1:43
"""
import requests
import json
import logging
import requests
logger = logging.getLogger(__name__)
class TuLing():
class TuLing:
def __init__(self):
self.__key__ = '2f1446eb0321804291b0a1e217c25bb5'
self.__appid__ = 137762
def __build_req_url(self, content):
def _build_req_url(self, content):
return 'http://www.tuling123.com/openapi/api?key=%s&info=%s&userid=%s' % (
self.__key__, content, self.__appid__)
@ -34,7 +21,7 @@ class TuLing():
def getdata(self, content):
try:
requrl = self.__build_req_url(content)
requrl = self._build_req_url(content)
res = self.UserAgent(requrl).decode('utf-8')
jsons = json.loads(res, encoding='utf-8')

Loading…
Cancel
Save