1、创建django项目
首先在对应文件夹下输入django-admin startproject c_aisystem命令 创建名为c_aisystem的django项目

然后即可在对应文件夹生成如下所示的文件目录

2、启动django项目
在C_PROJECTS/c_aisystem/目录下使用python manage.py runserver命令,核实生成的Django项目是否能够运行。

出现如下提示,虽然有unapplied migration提示,但我们先忽略提示,随后我们会解决它,现在证明我们已经开启了Django服务。
现在我们尝试用浏览器访问http://127.0.0.1:8000/,出现如下界面即可证明开启成功。

如果你想要更改端口,使用如下命令(例如更改端口为8080):

此时访问127.0.0.1:8080即可

3、创建自己的app
在django项目创建一个名为user的app,使用 python manage.py startapp user命令。
app与project的区别:一个project可以包含多个app,一个app可以在多个project中使用。
为了创建一个它自己的顶级模块,而不是我们的c_aisystem项目子模块,因此我们应该确保我们是在和manage.py相同的目录下创建的。

此时,即可创建成功,如下图所示:

4、创建第一个视图
创建自己的第一个视图,在/user/views.py文件中写入如下代码:
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse("Hello, world. ")
为了在浏览器中能够得到这个视图,我们应该建立一个URL映射关系。因此我们应该新建一个url.py文件来保存URL映射关系。

然后在user/urls.py文件下输入如下代码:
from django.urls import path
from . import views
urlpatterns =[
path('',views.index,name='index'),
]
同时需要在c_aisystem/urls.py文件下使用include()指明user/对应的user.urls模块。
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('user/',include('user.urls')),
]
现在使用python manage.py runserver 命令启动,同时在浏览器中输入127.0.0.1:8000/user/观察是否成功显示View.

成功显示。
5、django与数据库连接
因为我们要使用mysql数据库,而不是django自带的sqlite数据库,因此我们需要更改c_aisystem/settings.py文件中DATABASES项中的内容:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',#数据库类型
'NAME': 'c_aisystem',#数据库名称
'USER':'root',#数据库用户名
'PASSWORD':'1312463385cs.',#数据库密码
'HOST':'127.0.0.1',#数据库主机号
'PORT':'3306'#数据库端口号
}
}
同时我们应该在c_aisystem/settings.py文件的顶端的INSTALLED_APPS项中加入我们之前新建的app user,
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'user'
]
同时vscode中执行pip install mysqlclient命令保证安装好mysql服务,也要保证DATABASES项中的 'NAME': 'c_aisystem',#数据库名称 的c_aisystem数据库已经存在在了mysql中(Create database c_aisystem)。
6、创建model
然后在user/models.py文件中添加一个名为TUser继承于models.Model类的model:
from django.db import models
# Create your models here.
class TUser(models.Model):
userId = models.AutoField(primary_key=True,unique=True) #主键自增 ORM关系映射 DJango自动建表
username = models.CharField(max_length=50)
password = models.CharField(max_length=50)
7、创建model对应的映射
再使用python manage.py makemigrations创建model对应的映射:

此时/user/migration/0001_initial.py文件中将会有对应变化:

同时我们也可通过 python manage.py sqlmigrate user 0001命令查看相应的变化(此显示的语句是将要执行的,而并未真正执行):

同时也可以使用python manage.py check命令查看可能存在的错误。
8、创建model对应的表(即真正执行上述语句)
使用 python manage.py migrate命令,出现很多ok

现在去数据库验证一下:

生成了很多表,同时最后一个即为我们创建的model的表:

9、利用django直接对表进行增删改查
首先我们需要建立登录和登录之后的主界面。
在user/中新建一个templates文件夹,然后新建一个login.html文件:

<!DOCTYPE HTML>
<html>
<head>
<style>
*{
margin: 0;
padding: 0;
}
div{
height: 30px;
background: pink
}
</style>
</head>
<body>
<div>
</div>
<form action="/user/login" method="POST">
{% csrf_token %}<!安全机制 防止模拟登录>
用户名:<input name="username"/>
密码:<input name="password"/>
<input type="submit" value="登录"/>
<span style="color:red">{{mes}}</span>
</form>
</body>
</html>
然后在
user/urls.py中添加url,即把原文件内容更改为:
from django.urls import path
from . import views
urlpatterns =[
path('index', views.index),
path('login', views.login),
]
同时在user/views.py中添加def login(request)方法,即把原文件内容更改为:
from django.shortcuts import render#函数
from django.http import HttpResponse
from django.http import HttpResponseRedirect
from .models import TUser
# Create your views here.Control层 页面跳转返回
def index(request):
return HttpResponse("Hello, world. ")
def login(request):
'''
用户登录
'''
if request.method=='POST':
username = request.POST.get("username")
password = request.POST.get("password")
#模拟数据库查询操作
#TUser.objects.get(username=username)
#if username == 'admin' and password =='123456':
if TUser.objects.filter(username=username,password=password).exists()==True:#过滤
#return HttpResponse("登录成功!")#登录成功
return HttpResponseRedirect('index?mes=登录成功!') #重定向 get形式传参 #重定向
else:
return HttpResponseRedirect('login?mes=账号或密码错误!')
#return render(request,'login.html',{'login?mes=账号或密码错误!'})
#return HttpResponse("登录失败!")
print(username,password)
pass
else :
mes =""
if request.GET.get('mes'):
mes = request.GET.get('mes')
return render(request,'login.html',{'mes':mes})#默认访问GET类型
然后输入
127.0.0.1:8000/user/login 进入登录界面(首先保证python manage.py runserver)

输入111、111进行登录尝试:


现在我们先在数据库中存入相应的数据再进行验证:



现在我们更改user/views.py中的index方法:
def index(request):
'''
用户主页
'''
#return HttpResponse('hello world!')
user = TUser()
user.username = 'xiaogang'
user.password = '123'
user.save()#增加操作
# 操作对象的同时操作数据库
# user=TUser.objects.get(username='xiaogang')
# user.password =123456
# user.save()
# users=TUser.objects.raw('select * from user_tuser')
users = TUser.objects.all() #查询操作
return render(request,'index.html',{'mes':request.GET.get('mes'),'users':users})#向网页用户传参
同时在template文件夹下新建index.html文件:(首先保证python manage.py runserver)
<!DOCTYPE HTML>
<html>
<head>
<style>
*{
margin: 0;
padding: 0;
}
div{
height: 30px;
background: green;
color:white;
line-height: 30px
}
</style>
</head>
<body>
<div>
{{mes}}
</div>
主页<!接受到传来的参数>
{%for user in users%}
<li>
{{user.username}}
{% endfor %}
</body>
</html>
再次进行登录操作,登录成功:

在def index(request)中进行删除操作:
TUser.objects.filter(username='xiaogang').delete()
即
所以名为xiaogang的用户都会被删除:

更改操作

用小明 111 登录后更改成功:

miINSTALLED_AP