效果图如下:
1.新建项目和APP
使用命令提示符,进入想存放项目的目录:
//新建项目coco
django-admin startproject coco
//新建app
python manage.py startapp coco_app
在项目coco目录下新建static文件夹,用于存放网页文件的css,js,imgs
在coco_app目录下新建文件夹templates,用于存放需要用到的HTML网页
2.配置settings.py
打开coco文件夹中的settings.py注册coco_app
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'coco_app'
]
引用templates
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
连接数据库,这里我用的MySQL数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '这里填写自己创建的数据库名',
'USER': 'root',
'PASSWORD': '数据库的密码',
'HOST': '127.0.0.1',
'PORT': 3306,
}
}
在settings的最后加上
STATICFILES_DIRS = [os.path.join(BASE_DIR,'static'), ]
记得在coco目录下的__init__.py中导入pymysql
import pymysql
pymysql.install_as_MySQLdb()
3.配置主路由和子路由
在coco_app目录下新建文件urls.py作为项目的子路由,并添加内容:
from django.urls import path
from . import views
app_name = 'coco_app'
urlpatterns = [
path('', views.login_view),
path('index/', views.login_view_submit),
path('register/', views.register_view),
path('registergoto/', views.register_view_submit),
]
在coco目录下的urls.py主路由中添加内容:
from django.contrib import admin
from django.urls import path,include
import coco_app
from coco_app import urls
urlpatterns = [
path('admin/', admin.site.urls),
path('',include(coco_app.urls))
]
4.编写views.py
在coco_app目录下的views.py中添加内容:
import random
from django.shortcuts import render
from django.http import HttpResponse
from . models import *
# 登录页面
def login_view(requst):
return render(requst, 'login.html')
# 登录按钮提交后,验证数据库中是否存在用户,存在就跳转主网页
def login_view_submit(requst):
u = requst.POST.get('user','')
p = requst.POST.get('pwd','')
if u and p:
user = UserInfo.objects.filter(user_name=u,user_pwd=p).count()
if user>=1:
return render(requst, 'index.html')
else:
return render(requst, 'login.html')
else:
return render(requst, 'login.html')
# 注册页面
def register_view(requst):
return render(requst, 'register.html')
# 注册用户,将用户信息存进数据库
def register_view_submit(requst):
u = requst.POST.get('user', '')
p = requst.POST.get('pwd', '')
if u and p:
stu = UserInfo(user_id=str(random.randint(1,9999)),user_name=u,user_pwd=p)
stu.save()
return HttpResponse('注册成功')
else:
return HttpResponse('注册失败')
# Create your views here.
5.编写models.py,并迁移数据
在coco_app目录下的models.py中添加内容:
from django.db import models
class UserInfo(models.Model):
user_id = models.CharField(primary_key=True,max_length=20)
user_name = models.CharField(max_length=20)
user_pwd = models.CharField(max_length=20)
# Create your models here.
使用命令提示符,生成数据表,并迁移数据
//先生成数据表
python manage.py makemigrations
//迁移数据
python manage.py migrate
此时生成的表就添加打了数据库中
coco_app_userinfo表中就是新建的用户id和账号,密码,注册好的账号就会添加到这里面
6.添加HTML网页和css,js,以及imgs
把要用到的三张html网页放进templates文件夹中
以及把网页要用到的css,js和imgs文件放进static文件夹中
在三张网页的顶上添加代码,引用static
{% load staticfiles %}{% load static %}
表单中添加代码
{% csrf_token %}
替换所有的链接方式为:
{% static '这里是文件存放的目录' %}
(1)login.html代码
{% load staticfiles %}{% load static %}
登录页面
-
-
-
-
-
-
-
-
-
-
{% block content %} {% endblock %}
(2)register.html代码
{% load staticfiles %}{% load static %}
注册页面
-
-
-
-
-
-
-
-
-
-