一、Django项目创建
在创建Django项目之前需要在本地安装Python
1、进入Pycham之后点击文件新建项目选择新建Django项目,创建templates文件夹用来存放登录所需要的HTML页面,注意选择正确的python解释器。然后点击创建,等待创建完成即可。
2、验证Django项目是否创建成功
在终端命令行输入命令python manage.py runserver回车
点击运行后出现的网址,若跳转到如下页面则项目创建成功
3、 项目中的相关文件
manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
__init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
asgi.py: 一个 ASGI 兼容的 Web 服务器的入口,以便运行你的项目。
settings.py: 该 Django 项目的设置/配置。
urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。
wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。
4、在Django中创建一个登录注册的应用
在终端命令行中输入命令django-admin startapp login回车
应用中的文件作用:
admin.py: 这个文件中可以自定义django管理工具,比如设置在管理界面能够管理的项目,或者通过重新定义与系统管理有关的类对象,向管理功能增加新的内容。
apps.py: 这个文件时django1.10之后增加的,通常里面包含对应用的配置。
migration目录: 用于存储应用的数据表结构的指令,通过这些指令可以修改和创建数据库,从而在models.py模型类和数据库表之间迁移。
modles.py: 这是应用的数据类型,每个django应用都应当有一个 modles.py文件,虽然该文件可以为空,但不宜删除。
tests.py: 在这个文件中可以编写测试文档来测试所建立的应用。
views.py: 这是一个重要的文件,用户保存响应各种请求的函数或者类。如果编写的是函数,则称为基于函数的视图。
4、将登录应用添加到配置文件中的INSTALLED_APPS列表中
二、Django数据库(MySQL)配置
1、 修改setting.py中的DATABASE数据库配置如下
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'user_info',
'USER': 'root',
'PASSWORD': '123456',
'HOST': '127.0.0.1',
'POST':'3306',
}
}
2、 在终端命令行使用命令pip install pymysql安装数据库驱动
3、在__init__.py中导入包pymysql
4、 在models.py文件中中编写创建数据表的代码并在终端使用命令python manage.py migrate迁移到migrations中
class RegisterUser(models.Model):
User_id=models.CharField(max_length=12,blank=False,primary_key=True)
User_passwd=models.CharField(max_length=12,blank=False)
5、 在终端命令行使用命令python manage.py makemigrations login创建数据表
三、 登录和注册的实现
1、 将前端代码文件导入到templates文件夹中;
2、在urls.py文件中添加文件路径;
3、 在views.py中编写请求处理函数
(1) 登录处理函数;
def login(request):
if request.method=='GET':#如果是空表单让用户从新输入
return render(request,'login.html')
if request.method=='POST':
username=request.POST.get('username')#取出表单中的用户名
userpassword=request.POST.get('password')#取出表单中的用户密码
try:
user=RegisterUser.objects.get(User_id=username)#在数据库中查找用户名为username的对象(由用户名与密码组成)
if userpassword==user.User_passwd:#判断密码是否一致
return HttpResponse('登录成功')#一致则登录成功
else:
messages.error(request,'密码错误')#否则提示用户密码错误
return render(request, 'login.html')#返回让用户重新登录
except:
messages.error(request,'账号不存在')#若用户名不存在则提示用户用户不存在
return render(request,'Register.html')#跳转到注册页面让用户注册
(2) 注册处理函数;
def Register(request):
if request.method=='GET':#若提交的表单为空则让用户重新输入
return render(request,'Register.html')
if request.method=='POST':
userid=request.POST.get('username')#取出表单中的用户名
userpassword=request.POST.get('password')#取出表单中的密码
try:
user=RegisterUser.objects.get(User_id=userid)#在数据库中取出User_id为user_id的对象(由用户名与密码组成)
if user:
messages.error(request,'账号已存在')#如果用户名找到了那么提示用户账号已存在并返回登录页面
return render(request,'login.html')
except:
register = RegisterUser()#定义一个对象(由用户名与密码组成)
register.User_id = userid
register.User_passwd = userpassword
register.save()#将数据保存到数据库中
messages.error(request,'注册成功') #提示用户注册成功
return render(request,'login.html') #返回到登录页