1 模板的变量
1.1 Django开发环境搭建
以管理员的身份运行
(后文以VSCode代替),单击左上角菜单栏的终端,如所示,在其下拉列表选择【新终端】。
在VSCode的终端输入:
Set-ExecutionPolicy RemoteSigned
再在CMD中输入
E: #E大小写都可以
创建一个用于创建虚拟环境的目录,目录名自取
E:\>mkdir venv
进入到该目录
E:\>cd venv
安装virtualenv
E:\venv>pip install virtualenv
会显示如下结果:
创建一个名为“tv”的虚拟环境,虚拟环境名可自取
E:\venv>virtualenv tv
查看当前目录
E:\venv>dir
进入到虚拟环境所在的目录下
E:\venv>cd tv
1.2 启动虚拟环境
进入虚拟环境
E:\venv\ tv > Scripts\activate
安装指定的Django的2.2.3版本
(tv) E:\venv\tv>pip install django==2.2.3
1.3 新建项目
创建一个名为test1的项目
(tv) E:\venv\tv>django-admin startproject test1
左上角【文件】→打开文件夹→选择在1.1中创建的E:venv\tv\test1文件夹(项目主目录),结果如下:
1.4 创建应用
进入项目目录test1下,即与manage.py文件同级
(tv) E:\venv\tv>cd test1
创建应用,当前项目目录(test1)下新增了一个user的目录,user就是刚创建的应用名
(tv) E:\venv\tv\test1>python manage.py startapp user
user应用创建完成需要提前加入INSTALLED_APPS中,操作如下:
在VSCode中打开test1下的settings.py中的如下图插入红色文字的内容:
可复制如下代码段粘贴至settings.py对应位置中:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'user'
]
插入后按Ctrl+S保存修改内容
1.5 新建视图
在user/views.py中添加如所示内容
可复制如下代码段粘贴至views.py中,并覆盖原有所有内容:
# from django.shortcuts import render
# Create your views here.
from django.shortcuts import render,redirect
from django.contrib.auth.models import User
from django.contrib.auth import login,logout,authenticate
#登录
def loginView(request):
if request.method=="POST":
username=request.POST.get("username")
password=request.POST.get("password")
if User.objects.filter(username=username):
user=authenticate(username=username,password=password)
if user:
if user.is_active:
login(request,user)
msg="登录成功"
# return redirect("/index/")
else:
msg="用户名密码错误"
else:
msg="用户名不存在"
return render(request,"login.html",locals())
#注册
def regView(request):
if request.method=="POST":
username=request.POST.get("username")
password=request.POST.get("password")
email=request.POST.get("email")
if User.objects.filter(username=username):
msg="用户名已存在"
else:
user=User.objects.create_user(username=username,password=password,email=email)
msg="注册成功"
return render(request,"register.html",locals())
1.6 配置路由
在项目主目录test1中的urls.py中添加如下图所示内容
可复制如下代码段粘贴至urls.py对应位置中:
from django.contrib import admin
from django.urls import path
from user.views import loginView,regView
urlpatterns = [
path('admin/', admin.site.urls),
path('login/',loginView),
path('reg/',regView),
]
1.7 生成迁移文件
(tv) E:\venv\tv\test1>python manage.py makemigrations
No changes detected #本行是显示结果
1.8 执行迁移
(tv) E:\venv\tv\test1>python manage.py migrate
#以下是命令显示内容
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add