【python常用框架--Django】django连接mysql数据库及存取数据

启动服务:python manage.py runserver

在这里插入图片描述
app01 :应用名
dj:项目同名文件夹
static:存放静态文件
temphtml:存放html文件

连接数据库

在settings.py文件中找到 DATABASES,设置数据库连接
在这里插入图片描述
在models.py中设置数据库,建立一个类,设置变量

	class mod(models.Model):
		id = models.AutoField(primary_key=True)
		user= models.CharField(max_length=255)
		password= models.IntegerField() 
		
		# 数据输出样式
		def __str__(self):
		 	return f"['id': {self.id}, 'user': {self.user}, 'password': {self.password}]"
		 
		 class Meta:
		 	db_table = 'us_pass'  
		 	# 指定数据表名,可以是需要新建表的表名
		 	# 也可以是数据库中已存在的表
		 	# 但变量名需要和数据库中保持一致。

如果是需要新建表,则在终端先后运行:

	python manage.py makemigrations app_name
	python manage.py migrate

在这里插入图片描述
在这里插入图片描述
即可在指定数据库中生成指定表结构,也会生成很多其他的表,不用理会。如果库中已存在同名表,则不会新建。

向数据库存储数据

在views.py文件中导入相关类:
from app01.models import mod
这里显示表单的网页是首页,由home函数管理,输入数据后,带着参数跳转到index页面,由index函数管理,因此想要得到数据,需要在index函数中获取。

def home(request):
    return render(request, 'home.html')
    
def index(request):
    if request.method == 'POST':
        name = request.POST.get('name')
        password = request.POST.get('password')
        # 获取网页中的数据
        print(name, password)
        # 映射存储
        datas = mod()
        datas.user = name
        datas.password = password
        datas.save()
    return render(request, 'demo01.html')

home.html表单部分代码:

<form action="/index/" method="post">
<!--从home页post跳转到index页-->
    {% csrf_token %}
    name:<input type="text" name="name"/><br/>
    password:<input type="password" name="password"/><br/>
    <input type="submit" value="提交"/>
</form>

在网页中输入需要存储的数据
在这里插入图片描述
打印结果
在这里插入图片描述
数据库存储结果
在这里插入图片描述

从数据库中读取数据

同样是在views.py中导入需要的类
from app01.models import mod

def json_html(request):
    if request.method == 'POST':
        name = request.POST.get('name')
        datas = mod.objects.filter(user=name)
        # datas = mod.objects.all()
        # datas = mod.objects.get(id = '1')
        print(datas)
        for da in datas:
        	# 获取某一字段
        	passwords = da.password
    return HttpResponse(datas)

.objects.filter().objects.get()可添加条件。

但是get的条件必须满足在表中唯一,不然会出现get() returned more than one mod -- it returned 2! 的提醒,因为get只能返回一条数据。
filter可返回多条数据,属于QuerySet对象。
all 返回的是表中的所有数据,也属于QuerySet对象。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值