其他分享
首页 > 其他分享> > django的傻瓜教程

django的傻瓜教程

作者:互联网

傻瓜式django初级的登录注册 --用的mysql数据库
开始写django项目
在项目的文件夹目录 打开cmd
输入 django-admin startproject 项目名
添加环境 添加jdango包 添加sqlclient包
创建APP: python manage.py startapp App名字
在settings/INSTALLED_APPS 下添加APP的名字
setting/DATABASES 下修改
‘ENGINE’:‘django.db.backends.mysql’,
‘NAME’:‘数据库名称’,(打开cmd打开mysql客户端创建新的数据库:create database 数据库名)
‘HOST’:‘127.0.0.1’,
‘PORT’:‘3306’,
‘USER’:‘root’,
‘PASSWORD’:‘12345’,
在APP目录下/models.py写用户信息表
class UserInfo(models.Model):
username = models.CharField(max_length=20,null=False,unique=True)
pwo = models.CharField(max_length=20,null=False)
这个类写完后
生成迁移文件:python manage.py makemigrations
执行迁移文件:python manage.py migrate

开始写前台页面
先在APP目录下新建文件夹 templates
在templates文件夹下新建html页面
register.html:

{{ msg }}

{% csrf_token %}
账号
密码
确认密码
-*-------------------*-----------------------

写完后进入App目录下views.py中写注册的函数:
from django.shortcuts import render,HttpResponse
from user.models import UserInfo
def register(request):
if request.method == ‘GET’:
return render(request,‘register.html’)
else:
username = request.POST.get(‘username’, ‘’).strip()
pwd = request.POST.get(‘pwd’, ‘’).strip()
next_pwd = request.POST.get(‘next_pwd’, ‘’).strip()
data = {}
if username == ‘’:
data[‘msg’] = ‘账号不能为空’
elif pwd == ‘’:
data[‘msg’] = ‘密码不能为空’
elif pwd != next_pwd:
data[‘msg’] = ‘两次密码输入不一致’
else:
userInfo = UserInfo()
userInfo.username = username
userInfo.pwo = pwd
userInfo.save()
return HttpResponse(‘注册成功’)
return render(request,‘register.html’,data)

在项目目录下/urls.py/urlpatterns方法
from user.views import *
urlpatterns = [
path(‘admin/’, admin.site.urls),
path(‘register/’,register),
]

注册成功后打开mysql客户端进行验证
use 数据库名(使用数据库)
show tables (查看数据库所有的表)
select * from 表名 (查看表结构)

登录:
login.html:

{{ msg }}

{% csrf_token %}
    <tr>
        <td align="center" colspan="2">
            <input type="submit" value="登录">
        </td>
    </tr>
</table>
账号
密码

写完后进入App目录下views.py中写登录的函数:
第一种写法不太准确
def login(request):
if request.method == ‘GET’:
return render(request,‘login.html’)
else:
username = request.POST.get(‘username’ , ‘’).strip()
pwd = request.POST.get(‘pwd’ , ‘’).strip()
try:
userInfo = UserInfo.objects.get(username=username)
return HttpResponse(‘欢迎%s登录’%userInfo.username)
except:
data = {
‘msg’:‘用户名密码错误’
}
return render(request,‘login.html’,data)

写完后进入App目录下views.py中写登录的函数:
第二种写法不太准确
userList = UserInfo.objects.filter(username=username,pwd=pwd)
if userList:
userInfo = userList[0]
return HttpResponse(‘欢迎%s登录’%userInfo.username)
else:
data = {
‘msg’:‘账号密码有误’
}
return render(request,‘login.html’,data)

去项目目录下/urls.py添加path
urlpatterns = [
path(‘admin/’, admin.site.urls),
path(‘register/’,register),
path(‘login/’,login),
]

显示所有的用户信息页面
userlist.html;

{% for user in userList %}
{% endfor %}
序号 账号 密码
{{ forloop.counter }} {{ user.username }} {{ user.pwd }}

写完后进入App目录下views.py中写显示的函数:
def get_userList(request):
userList = UserInfo.objects.all()
data = {
‘userList’:userList
}
return render(request,‘userList.html’,data)

去项目目录下/urls.py添加path
urlpatterns = [
path(‘admin/’, admin.site.urls),
path(’’, index),
path(‘register/’,register),
path(‘login/’,login),
path(‘userList/’,get_userList),
]
---------------------------------------------起动项目 python manage.py runserver

shell的使用(不用敲)
进入 : python manage.py shell

导包:APP名字.models import UserInfo<<这是类名

输入:UserInfo.objects.all()#查询结果集

#可以显示结果集
输入:for i in UserInfo.object.all():
print(i.username)

#把结果变成字典
输入:UserInfo.objects.all().values()

#只显示username
输入:UserInfo.objects.values(‘username’)


表关系 一对多(接着上面的项目写)
在APP目录下/models.py写一对多

一对多关系

class Student(models.Model):
name = models.CharField(max_length=20)
classes = models.ForeignKey(‘Classes’,on_delete=models.CASCADE)

class Classes(models.Model):
cname = models.CharField(max_length=10)

这个类写完后
生成迁移文件:python manage.py makemigrations
执行迁移文件:python manage.py migrate

在mysql客户端查这两个表 (有信心的可以不看)
show database;
use 数据库名
show tables;
#查看表结构
desc user_classes;
desc user_student;

在APP目录下/models.py 写增删改查
要注释起来
“”"
#添加数据
u1 = UserInfo()
u1.username = ‘张三’
u1.pwd = ‘123’
u1.save()

u2 = UserInfo.objects.create(username=‘李四’,pwd=‘123’)

查询

UserInfo.objects.get(username=‘123’) #满足的数据必须是一条,如果都不满足或者多条数据满足,会报错

UserInfo.objects.filter(username=‘123’)#返回列表,不会报错,可以使用.values()将每个对象元素转化为字典

UserInfo.objects.all() .first() .last() .values()

修改

u1 = UserInfo.objects.get(username=‘123’)
u1.username = ‘456’
u1.save()

删除

u1 = UserInfo.objects.get(username=‘123’)
u1.delete()
“”"

进入shell:python manage.py shell
导包:from APP名字.models import *
后边的根据题意在上面的方法里赋值

不喜勿喷 MMP

标签:username,教程,models,py,request,傻瓜,pwd,UserInfo,django
来源: https://blog.csdn.net/moyizhouJava/article/details/98957866