一、安装
1. 安装mysql
windows下推荐下载phpstudy,一键安装,具体操作百度:phpstudy 安装教程
安装时记下数据库登陆的账号密码。
安装成功之后,如下
请先确保mysql的版本大于5.6,如果不大于,在django会报错,需要升级mysql,请参考https://shijianfeng.blog.csdn.net/article/details/117428669。
一切都没有问题之后,
新建一个数据库,名字叫visit_tsinghua,编码一定要选择utf8-general-ci,否则不支持中文存储
2. 安装mysqlclient2.0.3
安装成功之后,在外面可以看到
二、在Django框架里使用mysql
1. 在settings.py中修改DATABASES内容如下:
-
DATABASES = {
-
'default': {
-
'ENGINE':
'django.db.backends.mysql',
-
'NAME':
'visit_tsinghua',
-
'USER':
'root',
-
'PASSWORD':
'root',
-
'HOST':
'127.0.0.1',
-
'PORT':
'3306',
-
'OPTIONS': {
-
"init_command":
"SET sql_mode='STRICT_TRANS_TABLES'",
-
}
-
}
-
}
其中NAME是你的数据库名称,HOST是数据库地址,其它的大家都知道。
2. 进入models.py中创建与你的数据库表相对应的对象model
-
from django.db
import models
-
-
-
class User(models.Model):
-
id = models.AutoField(primary_key=True) # django 在每一次save()操作后都可以正常的增加一条数据并且id顺序自增。id无需在save中创建,数据表自动添加
-
name = models.CharField(max_length=50)
-
level = models.IntegerField(default=1) # 用户等级,默认1
-
createTime = models.DateTimeField(null=True)
-
-
class Meta:
-
db_table = 'User' # 数据表名称
命令行中进入 manage.py同级目录
执行python manage.py makemigratetions app名(可选)
-
# 让 Django 知道我们在我们的模型有一些变更
-
python
manage.py makemigrations userWeb
再执行
-
# 创建表结构
-
python
manage.py migrate
查看数据库,发现已经新建了user表了。
这叫ORM,对象关系映射(Object Relation Mapping),实现对象和数据库的映射,隐藏数据访问的细节,不需要编写SQL语句
在models.py中可以创建多个表的model。
3. 在admin.py中注册model
-
from django.contrib
import admin
-
from .
import models
-
-
# Register your models here.
-
admin.site.register(models.User)
4. 其中testUser.html是放在templates中的前端页面:
-
<!DOCTYPE html>
-
<html>
-
<body>
-
<p>请输入用户信息
</p>
-
<form action="/testadduser" method="post">
-
{%csrf_token%}
-
姓名:
<input type="text" name="name">
<br>
-
用户等级:
<input type="number" name="level">
<br>
-
<input type="submit" value="提交">
-
</form>
-
</body>
-
</html>
5. views.py(或者自己创建的py文件)中编写代码主要看 testAddUser 这个方法:
-
import datetime
-
-
from django.http
import HttpResponse
-
from django.shortcuts
import render
-
-
# Create your views here.
-
from userWeb.models
import User
-
-
-
def index(request):
-
return render(request,
'./userWeb/index.html')
-
-
# 加法页面
-
def add(request):
-
return render(request,
'./userWeb/add.html')
-
-
# 执行加法
-
def doadd(request):
-
a = request.POST[
'a']
-
b = request.POST[
'b']
-
a = int(a)
-
b = int(b)
-
result = a + b
-
# return HttpResponse(str(result))
-
context = {}
-
context[
'a'] = a
-
context[
'b'] = b
-
context[
'result'] = result
-
return render(request,
'./userWeb/add_result.html', context)
-
-
# 增加用户页面
-
def testUser(request):
-
return render(request,
'./userWeb/testUser.html')
-
-
def testAddUser(request):
-
-
name = request.POST[
'name']
-
level = request.POST[
'level']
-
createTime = datetime.datetime.now()
-
-
user = User.objects.create(name=name, level=level, createTime=createTime)
-
-
context = {}
-
context[
'msg'] =
'用户新增成功'
-
context[
'数据库中的id'] = user.id
-
return HttpResponse(str(context))
6.到urls.py中添加路径完整代码如下:
-
"""visit_tsinghua URL Configuration
-
-
The `urlpatterns` list routes URLs to views. For more information please see:
-
https://docs.djangoproject.com/en/3.2/topics/http/urls/
-
Examples:
-
Function views
-
1. Add an import: from my_app import views
-
2. Add a URL to urlpatterns: path('', views.home, name='home')
-
Class-based views
-
1. Add an import: from other_app.views import Home
-
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
-
Including another URLconf
-
1. Import the include() function: from django.urls import include, path
-
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
-
"""
-
from django.contrib
import admin
-
from django.urls
import path
-
from userWeb.views
import *
-
-
urlpatterns = [
-
path(
'admin/', admin.site.urls),
-
path(
'index', index),
-
path(
"add", add),
-
path(
"doadd", doadd),
-
path(
"testuser", testUser),
-
path(
"testadduser", testAddUser),
-
]
7. 运行效果
参考:
https://www.cnblogs.com/mr-yoatl/p/11756810.html
https://blog.csdn.net/chengkuiwu3328/article/details/100909334
转载:https://blog.csdn.net/u013288190/article/details/117419657
查看评论