首先是让Django项目与mysql数据库初步建立连接

具体做法见:pycharm连接mysql(注意其中第二步MySQL驱动最好安装最新版的)

这里讲一下我在做这一步遇到的问题。一般Driver 那里的com.mysql.cj.jdbc.Driver是会自动显示的,但我一开始不显示

因为我的mysql-connector-java-8.0.19文件夹如下,重复了,(这个是我拿下载到的zip选择解压文件得到的),得选第二个mysql-connector-java-8.0.19才有效:

正确的mysql-connector-java-8.0.19包含如下文件,

ok,按以上步骤完成便可与mysql初步建立连接了。
连接建立后便可以在pycharm直接对数据库进行操作了

这里的对DB navigator的操作自己随便点点就可以懂了,无非就是增删改查,不细说

接下来就是一些配置问题

在settings.py里做如下修改:

这里的name填写你要连接的MySQL中的数据库名字

在这里注册以下app,my_app是我创建的app的名字
然后对init.py做如下修改:

在models.py中添加如下代码,创建一个user模型:

然后在admin.py中注册一下该模型:

这样我们就在数据库中创建了一个user表,如图:

随后通过connection在表中添加数据,这个自己摸索一下即可实现

这样表中就有了两个我们插入的数据:

最后一步,在终端执行如下命令:
python manage.py makemigrations
python manage.py migrate
这两个命令的作用可以自行网上了解

到这里就剩最后一步了,即登录页面提交表单,随后到数据库中验证

找到登录页面的表单:

其中action代表你将表单提交至何处(后面我们会详写check_login),用户名和密码输入里的name,我们后面会根据这两个name获取两个框中输入的值(见下图代码,点击登录时提交表单,获取到了id为login-username框中输入的值,而userName恰好就是上图里的name)

到urls.py中添加check_login:
最后到views.py中详细写一下check_login.

先如下,暂时并未与数据库相连接

def check_login(request):
if request.method == "POST":
username = request.POST.get('userName', None) #userName为上图form表单中用户名那里的name值
password = request.POST.get('passWord', None) if username =='admin' and password =='123456':
return redirect('homepage') #跳转至homepage页面
else:
return render(request, 'login.html')

在登录页面,用户名输入admin,密码输入123456
若可以跳转至homepage页面,则代表成功获取到了框中输入的用户名和密码

接下来就是连接数据库了,代码如下:

def check_login(request):
if request.method == "POST":
username = request.POST.get('userName', None)
password = request.POST.get('passWord', None) #if username =='admin' and password =='123456':///此处试验成功,成功从表单处得到输入的用户名和密码
# return redirect('homepage')
#else:
# return render(request, 'register.html')
if username and password: # 确保用户名和密码都不为空
username = username.strip()
try:
user = models.User.objects.get(name=username) #看前面创建的user表中是否有name值符合登录页面输入的用户名
except:
return render(request, 'register.html') #数据库中没有相应的用户名,跳转至注册页面
if user.password == password:
return redirect('homepage') return render(request, 'login.html')

ok,这样就可以在Django中实现登录功能啦
如果本片博客无法帮你用Django实现登录/注册,可以结合一下https://blog.csdn.net/laikaikai/article/details/80563387,这篇博客中的登录注册部分还是很详细的。

Django+pycharm+mysql 实现用户登录/注册(Django五)的更多相关文章

  1. JavaWeb-SpringBoot_使用MySQL管理用户登录注册+接入腾讯短信SDK_demo

    使用Gradle编译项目 传送门 项目已托管到Github上 传送门 JavaWeb-SpringBoot_一个类实现腾讯云SDK发送短信 传送门 用户注册 用户并非一定要输入正确的手机验证码去激活当 ...

  2. Django实现用户登录注册

    本文将会介绍小白如何完成一个用户登录注册系统 新建一个Django项目,名字为login_register,并且使用命令manage.py startapp.User(名字自己随便起) 最终djang ...

  3. django rest_framework vue 实现用户登录

    django rest_framework vue 实现用户登录 后端代码就不介绍了,可以参考  django rest_framework 实现用户登录认证 这里介绍一下前端代码,和前后端的联调过程 ...

  4. Java Spring+Mysql+Mybatis 实现用户登录注册功能

    前言: 最近在学习Java的编程,前辈让我写一个包含数据库和前端的用户登录功能,通过看博客等我先是写了一个最基础的servlet+jsp,再到后来开始用maven进行编程,最终的完成版是一个 Spri ...

  5. android安卓Sqlite数据库实现用户登录注册

    看了很多别人写的安卓SQlite数据的操作代码,一点也不通俗易懂,我觉得我写的不错,而且安卓项目也用上了,所以在博客园里保存分享一下!建立一个类 并继承SQLiteOpenHelper public ...

  6. javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  7. 纯JSP实现用户登录注册,记事本

    没有美化,没有格式,没有样式 1.JSP登陆注册 将用户注册的信息保存在application对象中,用于登录时的验证. 首页如下: 如果未登录,在  session 中找不到 currentUser ...

  8. JavaWeb学习 (二十一)————基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  9. 基于Servlet+JSP+JavaBean开发模式的用户登录注册

    http://www.cnblogs.com/xdp-gacl/p/3902537.html 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBea ...

随机推荐

  1. C#LeetCode刷题之#665-非递减数列( Non-decreasing Array)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3732 访问. 给定一个长度为 n 的整数数组,你的任务是判断在最 ...

  2. 从系统报表页面导出20w条数据到本地只用了4秒,我是如何做到的

    背景 最近有个学弟找到我,跟我描述了以下场景: 他们公司内部管理系统上有很多报表,报表数据都有分页显示,浏览的时候速度还可以.但是每个报表在导出时间窗口稍微大一点的数据时,就异常缓慢,有时候多人一起导 ...

  3. 如何将返回的JSon字符串用MAP格式读取

    语法是这样: ObjectMapper mapper = new ObjectMapper(); Map resultMap=null; resultMap = mapper.readValue(in ...

  4. 隐藏jqgrid滚动条

    .ui-jqgrid .ui-jqgrid-bdiv{ overflow-x: hidden; } /* 隐藏jqgrid滚动条 */

  5. oracle replace的用法

    表数据里面有些数据是有换行或者特殊字符的,想要去掉,但是几千条记录要一条条改基本不可能. 后来想到了replace这个函数,具体用法如下: update 表1 t set t.列1=replace(( ...

  6. CSS实现大数据热点波纹图

    CSS实现大数据热点波纹图 实现效果: 涉及知识点: 定位 盒子阴影 动画 思想:以3道波纹为例.首先使用一个div盒子作为圆心,然后每道波纹作为一个div.4个盒子均使用定位属性定位到圆心.然后设置 ...

  7. Python中print()函数不换行的方法以及分隔符替换

    一.让print()函数不换行 在Python中,print()函数默认是换行的.但是,在很多情况下,我们需要不换行的输出(比如在算法竞赛中).那么,在Python中如何做到这一点呢? 其实很简单.只 ...

  8. aop思想以及环境搭建(记录自己的一小步)1.1

    ##什么是aop思想? 首先老办法我们一起先看看官网是咋描述的? 它利用一种称为"横切"的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其名为 ...

  9. 虚拟机VmWare打开报错,错误提示:VMware Authorization Service is not running!

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 微博:http://weibo.com/mcxiaobing 说明:打开我的虚 ...

  10. Xutils 的框架问题retry error, curr request is null Android开发之网络请问问题

    没有网络权限也能导致这个问题 也可能是因为模拟机没联网的问题