经过一些文档的理解,以及一些时间的琢磨。我觉得可以用django做一些小项目了

先说说登录功能吧。

先创建一个app,用admin命令

在cmd打开到manage.py同级目录下,django-admin startapp appname。

如果还没有项目,先startproject。我这边app名字是login_new。创建成功后在pycharm打开该项目。首先,我们要建立一个模型。

为了只是实现功能,我这边只用了两个字段,user和password。在models文件输入代码

from django.db import models

class User(models.Model):
user = models.CharField(max_length=20)
password = models.CharField(max_length=200) def __str__(self):
return self.user # Create your models here.

CharField是字段类型,models还有其他的类型,具体的可以去看下文档,这个字段比较特殊,需要字段长度,见括号里。这样为止,模型就建好了,比较简单。

先声明下,我一般比较喜欢先从models开始,看了一些教程都是从别的开始。都一样,怎么理解怎么来吧

然后,把这个模型添加到admin文件里,

from django.contrib import admin
from .models import User admin.site.register(User)
# Register your models here.

将'login_new.apps.LoginNewConfig'这句加入setting里的app配置下,如下图

然后创建生成数据库的脚本python manage.py makemigrations login_new,成功后,输入python manage.py migrate去数据库建表。需要下载mysqlclient包的自觉下载,安装不了的https://www.cnblogs.com/afei123/p/11240182.html

做完上面这些,对其他语言来说写完一半了,后台完成好了。你可以python manage.py runserver启动服务区admin里看看是不是可以创建新账号了。

这些做完,就得去做视图的事了。

首先先解决url,去project下的urls里面配置。在下面加上

    path('testapp/',include('testApp.urls')),

这句话,之后就可以去app下的urls里面修改了。首先先去views文件下创建一个login函数,我这边直接贴成品代码吧。

from django.shortcuts import render
from .models import User def login(request):
context = {}
#设置状态
context['stat'] = 'login'
if 'user' and 'password' in request.GET: #如果有数据提交了的话
#传递数据
user = request.GET['user']
#去数据库查询user
passw = User.objects.get(user=user) if request.GET['password'] == passw.password: #对比数据
context['titl1'] = 'success'
context['name'] = request.GET['user']
#成功后跳转成功页面
return render(request, 'login/results.html', context)
else: #对比失败,修改状态
context['wrong'] = 'failed'
else:
context['wrong'] = '请输入数据'
#失败停留在原来的界面
return render(request,'login/login.html',context)

上述代码其实是跟html文件相对应,request.GET取参数,返回的是一个字典类型,我们在后台创建一个字典类型context用来将数据返回给前端,context的key值对应的是html里设置的,先贴一下我的目录结构和login.html代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{{title1}}</title>
</head>
<body>
<form action="/login" method="get">
<input type="text" name="user">
<input type="password" name="password">
<input type="submit" value="登录">
</form>
{% if wrong %}
<h1>{{wrong}}</h1>
{% endif %}
</body>
</html>

先说明一下,因为我把urls分过来了,所以自己创建了一个urls文件,用来指定url,代码入下

from django.urls import path
from . import views app_name = 'login_new' urlpatterns = [
  #127.0.0.1:8000/login
path('',views.login,name='login'),
  #127.0.0.1:8000/login/regist
path('regist',views.regist,name='regist'),
]

这表明我指定了两个url,一个对应login,一个对应regist,整段复制进代码的时候记得先去views里def一个regist方法。

回归到login,实现了之后再去看就觉得很简单,实际上就是一个数据传递,然后对模板不是很懂的话可以去看一下,jinja2。

在login.html里我们创建了一个form和一个,{{wrong}},这会返回错误,如果后台里wrong里有值,那么就会显示这一行。

按理说上述代码就完成了登录,结果如下

登录成功

这边忘了results文件,代码如下

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>results</title>
</head>
<body>
<a href="/login">dengzhu</a>
</body>
<h1>{{stat}}success!!!!</h1>
<h1>welcome ,{{name}}!</h1>
</html>

不过忘了处理错误数据了,输入错的会直接报错

这个程序的url中会直接暴露密码,安全性也不是很足。

然后下面是regist的代码和html。

def regist(request):
context = {}
context['stat'] = 'regist'
if 'user' and 'password' in request.GET:
name = request.GET['user']
password = request.GET['password'] new_user = User(user=name,password=password) new_user.save()
context['name'] = name return render(request,'login/results.html',context)
else:
context['wrong'] = '请输入数据' return render(request,'login/regist.html',context)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>regist</title>
</head>
<body>
<form action="/login/regist" method="get">
<input type="text" name="user">
<input type="password" name="password">
<input type="submit" value="注册">
</form>
<h1>{{wrong}}</h1>
</body>
</html>

regist那段没什么含量,我完成login功能后十分钟就写完了。

emmmm,讲的有点乱七八糟的

django实现简易登录注册的更多相关文章

  1. Django实现用户登录注册

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

  2. Java图形界面开发—简易登录注册小程序

    登录注册小代码,将学过的一些小知识融合在一起进行了使用,加深印象.本例中如果有注释不详细的地方,详见其它博客. Java程序操作数据库SQLserver详解 功能介绍:简单的登录注册系统,使用了数据库 ...

  3. django项目一 登录注册

    STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR,'static') ] AUTH_USER_MODEL = 'cr ...

  4. django 的form登录 注册

    #!/usr/bin/env python # -*- coding: utf8 -*- #__Author: "Skiler Hao" #date: 2017/3/30 15:4 ...

  5. Django+pycharm+mysql 实现用户登录/注册(Django五)

    首先是让Django项目与mysql数据库初步建立连接 具体做法见:pycharm连接mysql(注意其中第二步MySQL驱动最好安装最新版的) 这里讲一下我在做这一步遇到的问题.一般Driver 那 ...

  6. Django项目登录注册系统

    Django项目之个人网站 关注公众号"轻松学编程"了解更多. Github地址:https://github.com/liangdongchang/MyWeb.git 感兴趣的可 ...

  7. AI学习吧-登录注册

    登录注册注销 如果需要给表设置权限,没有登录就不可以查看,只需要在每个视图函数之前加上Auth_classes=[ ]即可! 增加两张表,做登录认证 #models.py #做登录验证 class U ...

  8. django在admin后台注册自己创建的数据库表

    django在admin后台注册自己创建的数据库表,这样我们就可以在admin后台看到表结构信息,我们就可以在admin后台快速录入表记录信息 如果没有注册,那么你在登录django自带的admin的 ...

  9. Django(完整的登录示例、render字符串替换和redirect跳转)

    day61 1. 登录的完整示例                       复习:         form表单往后端提交数据需要注意哪三点:  五一回来默写    <-- 谁写错成from谁 ...

随机推荐

  1. mysql数据库技术1——基本的增删查改的sql语句

    1.数据库语言的分类 DDL:数据库定义语言 data Definition language 用于创建.修改.和删除数据库内的数据结构,如: 1:创建和删除数据库(CREATE DATABASE | ...

  2. Spark基础和RDD

    spark 1. Spark的四大特性 速度快 spark比mapreduce快的两个原因 基于内存 1. mapreduce任务后期在计算的是时候,每一个job的输出结果都会落地到磁盘,后续有其他的 ...

  3. 史上最全的Java高级技术点,全是Java高级进阶技术,几乎包含了Java后端的所有知识点

    史上最全的Java高级技术点,全是Java高级进阶技术,几乎包含了Java后端的所有知识点 1

  4. 如何使用 Vue-TCB 快速在 Vue 应用中接入云开发

    什么是 Vue TCB 我自己平时经常会用到 Vue 来开发前端应用.所以,基于 Vue 的插件系统,封装了一个 Vue 插件. 如何使用 1. 安装 vue-tcb 执行如下命令,安装 vue-tc ...

  5. day19 几个模块的学习

    # 模块本质上就是一个 .py 文件# 数据类型# 列表.元组# 字典# 集合.frozenset# 字符串# 堆栈:特点:先进后出# 队列:先进先出 FIFO # from collections ...

  6. Python3标准库:bisect维护有序列表

    1. bisect维护有序列表 bisect模块实现了一个算法来向列表中插入元素,同时仍保持列表有序. 1.1 有序插入 下面给出一个简单的例子,这里使用insort()按有序顺序向一个列表中插入元素 ...

  7. P2813 母舰

    ------------------------------------------- 链接:P2813 ------------------------------------------- 一道贪 ...

  8. PTA 学生成绩链表处理(C语言)

    本题要求实现两个函数,一个将输入的学生成绩组织成单向链表:另一个将成绩低于某分数线的学生结点从链表中删除. 函数接口定义: struct stud_node *createlist(); struct ...

  9. IntelliJ IDEA 2018.3.2 永久破解

    PS:动手能力强的来,手残的去淘宝买吧,大概15块钱1年.建议看完后在动手,有一个全局观,浪费不了多少时间 一. 下载破解补丁文件 链接:https://pan.baidu.com/s/1wFp14t ...

  10. 打印机打印pdf文件特别慢怎么解决

    PDF等文件中都包含了一些或者很多光栅化数据(图片.嵌入的字体等).这些文件在打印时,打印机驱动程序都会在系统中生成大量EMF文件(增强型变换文件),小到1MB,大到500MB,过大的EMF临时文件会 ...