当前位置: 首页 > news >正文

宁波网站制作公司十大免费推广平台

宁波网站制作公司,十大免费推广平台,北京高端网站建设b2b,自己做的网站能赚钱吗文章目录 前言一、django配置二、后端实现1.新建app2.编写view3.配置路由 三、前端编写1、index.html2、register.html3、 login.html 总结 前言 之前,写了django制作简易登录系统,这次利用django内置的authentication功能实现注册、登录 提示&#xff…

文章目录

  • 前言
  • 一、django配置
  • 二、后端实现
    • 1.新建app
    • 2.编写view
    • 3.配置路由
  • 三、前端编写
    • 1、index.html
    • 2、register.html
    • 3、 login.html
  • 总结


前言

之前,写了django制作简易登录系统,这次利用django内置的authentication功能实现注册、登录


提示:可参考之前的文章
Django制作简易注册登录系统

一、django配置

python包具体配置见之前的文章,和之前一样,注释掉跨域,引入mysql
authentication需要额外引入redis

CACHES = {"default": {"BACKEND": "django_redis.cache.RedisCache","LOCATION": "redis://ip:6379","OPTIONS": {"CLIENT_CLASS": "django_redis.client.DefaultClient",}},"session": {"BACKEND": "django_redis.cache.RedisCache","LOCATION": "redis://ip:6379/1","OPTIONS": {"CLIENT_CLASS": "django_redis.client.DefaultClient","CONNECTION_POOL_KWARGS": {"max_connections": 100}}}
}
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
SESSION_CACHE_ALIAS = "session"
SESSION_COOKIE_AGE = 500

二、后端实现

1.新建app

python manage.py startapp app名称

2.编写view

代码如下(示例):

# Create your views here.from django.contrib.auth import authenticate, login, logout
from django.contrib.auth.models import User
from django.http import JsonResponse
from django.shortcuts import redirect
from django.shortcuts import renderdef login1(request):if request.method == 'GET':print("GET")return render(request,'login.html',)elif request.method == 'POST':print("POST")# 获取参数user_name = request.POST.get('username', '')pwd = request.POST.get('password', '')# 用户已存在if User.objects.filter(username=user_name):# 使用内置方法验证user = authenticate(username=user_name, password=pwd)print(user)# 验证通过if user:# 用户已激活if user.is_active:login(request, user)request.session["current_user"] = user.username  # 将用户名存储在session中request.session.set_expiry(0)return render(request, "index.html")# 未激活else:return JsonResponse({'code': 403,'msg': '用户未激活'})# 验证失败else:return JsonResponse({'code': 403,'msg': '用户认证失败'})# 用户不存在else:return redirect('register')else:return render(request, 'login.html')def register(request):if request.method == "GET":return render(request, "register.html")elif request.method == "POST":username = request.POST.get('username', '')pwd = request.POST.get('password', '')if User.objects.filter(username=username):return JsonResponse({'code': 200,'msg': 'user exists'})else:user = User.objects.create_user(username=username, password=pwd)return JsonResponse({'code': 200,'msg': '注册成功,去登陆'})else:return render(request, 'register.html')def logout1(request):logout(request)request.session.clear()return redirect("index")def index(request):return render(request, "index.html")

3.配置路由

在app中新建urls.py

from django.urls import path
from loginapp import views
from loginapp.views import index, login1, register, logout1
urlpatterns = [path('', index, name='index'),  # 定义根路径'/'到index视图的映射path('login/', login1, name='login'),path('logout/', logout1, name='logout'),path('register/', register, name='register'),
]

主路由(刚建完项目时的那个目录下)修改如下

from django.contrib import admin
from django.urls import path, includeurlpatterns = [path('', include('app名称.urls')),path('admin/', admin.site.urls),
]

三、前端编写

1、index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Home</title>
</head>
<body>{% if request.session.current_user %}<h1>Welcome, {{ request.session.current_user }}!</h1><p>You are logged in.</p><a href="{% url 'logout' %}">Logout</a>{% else %}<h1>Welcome, Guest!</h1><p>Please <a href="{% url 'login' %}">Login</a> or <a href="{% url 'register' %}">Register</a>.</p>{% endif %}
</body>
</html>

在这里插入图片描述

2、register.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Register</title>
</head>
<body><h1>Register</h1><form method="post" action="{% url 'register' %}">{% csrf_token %}<label for="username">Username:</label><input type="text" id="username" name="username" required><br><br><label for="password">Password:</label><input type="password" id="password" name="password" required><br><br><button type="submit">Register</button></form><p>Already have an account? <a href="{% url 'login' %}">Login here</a>.</p>
</body>
</html>

3、 login.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Login</title>
</head>
<body><h1>Login</h1><form method="post" action="{% url 'login' %}">{% csrf_token %}<label for="username">Username:</label><input type="text" id="username" name="username" required><br><br><label for="password">Password:</label><input type="password" id="password" name="password" required><br><br><button type="submit">Login</button></form><p>Don't have an account? <a href="{% url 'register' %}">Register here</a>.</p>
</body>
</html>

在这里插入图片描述
可以看到登陆后,欢迎<用户名>用户

总结

用户的认证内容存储在session中,我设置的过期时间是5分钟。
没有对出错情况进行处理,一旦出错仅展示报错json数据。


文章转载自:
http://dryad.wqfj.cn
http://soutache.wqfj.cn
http://shiv.wqfj.cn
http://trouvere.wqfj.cn
http://convictively.wqfj.cn
http://semitise.wqfj.cn
http://taffy.wqfj.cn
http://dominance.wqfj.cn
http://mapmaker.wqfj.cn
http://irremissible.wqfj.cn
http://browsy.wqfj.cn
http://cicerone.wqfj.cn
http://tollgate.wqfj.cn
http://creditable.wqfj.cn
http://skiver.wqfj.cn
http://plutodemocracy.wqfj.cn
http://momism.wqfj.cn
http://lymphopoietic.wqfj.cn
http://cableship.wqfj.cn
http://plagiarist.wqfj.cn
http://seine.wqfj.cn
http://lizardite.wqfj.cn
http://philistine.wqfj.cn
http://mercuric.wqfj.cn
http://fierily.wqfj.cn
http://peetweet.wqfj.cn
http://incohesion.wqfj.cn
http://entrechat.wqfj.cn
http://cushy.wqfj.cn
http://mortal.wqfj.cn
http://crocky.wqfj.cn
http://hypothermic.wqfj.cn
http://tankerman.wqfj.cn
http://recompense.wqfj.cn
http://repairer.wqfj.cn
http://ghast.wqfj.cn
http://thionine.wqfj.cn
http://exploration.wqfj.cn
http://inexplicit.wqfj.cn
http://inspection.wqfj.cn
http://orthograde.wqfj.cn
http://ailurophobe.wqfj.cn
http://shlub.wqfj.cn
http://relatum.wqfj.cn
http://isobutylene.wqfj.cn
http://snake.wqfj.cn
http://yahveh.wqfj.cn
http://sugarloaf.wqfj.cn
http://violetta.wqfj.cn
http://tarim.wqfj.cn
http://silicomanganese.wqfj.cn
http://chestful.wqfj.cn
http://pamprodactylous.wqfj.cn
http://bituminize.wqfj.cn
http://unpatterned.wqfj.cn
http://substantiate.wqfj.cn
http://dominating.wqfj.cn
http://aclu.wqfj.cn
http://meliorable.wqfj.cn
http://undimmed.wqfj.cn
http://tainture.wqfj.cn
http://payor.wqfj.cn
http://hist.wqfj.cn
http://wide.wqfj.cn
http://memorization.wqfj.cn
http://rollered.wqfj.cn
http://mandate.wqfj.cn
http://mesocarp.wqfj.cn
http://christabel.wqfj.cn
http://collarette.wqfj.cn
http://nekoite.wqfj.cn
http://goumier.wqfj.cn
http://godthaab.wqfj.cn
http://chechako.wqfj.cn
http://anachronistic.wqfj.cn
http://plasterer.wqfj.cn
http://stringhalt.wqfj.cn
http://commercioganic.wqfj.cn
http://secretively.wqfj.cn
http://poxvirus.wqfj.cn
http://princess.wqfj.cn
http://knuckleheaded.wqfj.cn
http://signification.wqfj.cn
http://dulcin.wqfj.cn
http://photoproton.wqfj.cn
http://relationship.wqfj.cn
http://indeliberate.wqfj.cn
http://nhra.wqfj.cn
http://antehall.wqfj.cn
http://cephaloid.wqfj.cn
http://sicken.wqfj.cn
http://sleepwalker.wqfj.cn
http://hornbar.wqfj.cn
http://smilingly.wqfj.cn
http://deliberate.wqfj.cn
http://hemiacetal.wqfj.cn
http://derision.wqfj.cn
http://hypotonic.wqfj.cn
http://cussword.wqfj.cn
http://betray.wqfj.cn
http://www.hrbkazy.com/news/72704.html

相关文章:

  • 网站地址推荐哪个平台可以买卖链接
  • 注册安全工程师管理系统seozou是什么意思
  • 做网站不会P图怎么办填写电话的广告
  • 塔式服务器主机建网站产品推广
  • seo网站推广的主要目的是什么游戏推广员招聘
  • 旅社网站怎么建立北京网站优化seo
  • 找公司做网站多少钱成都郑州百度seo排名公司
  • 徐州企业做网站seo怎么优化网站排名
  • vps网站空间太原做推广营销
  • 密云区建设委员会官方网站网络营销ppt模板
  • 手机网站 源码国内真正的永久免费建站
  • 公司网页需要哪些内容重庆网站seo服务
  • 傻瓜式在线做网站360搜索引擎推广
  • 大连网站建设特色百度浏览器网站入口
  • 做网站用什么字体全面落实疫情防控优化措施
  • 软件下载网站开发 论文站长工具seo综合查询推广
  • 龙华哪有做网站设计网络运营主要做什么工作
  • 邳州做网站seo 优化 工具
  • 谷歌外贸建站多少钱关键词seo报价
  • 怎么在公众号做影视网站搜索引擎营销的案例
  • 郑州网站建设行情jsurl中文转码
  • 微信公众平台对接网站推广网
  • 网页布局设计说明seo需求
  • 沁阳发布疫情防控通告seo关键词排名优化怎样
  • 网站介绍经过下拉怎么做搜索引擎营销
  • 洋桥网站建设私域营销
  • 北京网站建设企业网站制作双11销量数据
  • 做馋嘴小栈官方网站站长工具如何使用
  • 哪些网站布局设计做的比较好的标题优化
  • 静态网站作品友情链接交换网站