Django+Pycharm简单操作Mysql数据库

本文详细解析了Django框架中静态文件的配置方法,包括STATIC_URL的设置和STATICFILES_DIRS的路径配置。同时,深入探讨了form表单的提交方式,包括提交数据的动作触发、地址指定及请求方式的控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

静态文件配置

STATIC_URL = '/static/'
# 静态文件配置
STATICFILES_DIRS = [
    os.path.join(BASE_DIR,'static')
]
# 暴露给外界能够访问服务器静态文件夹下面所有的资源


STATIC_URL = '/xxx/'  # 接口前缀 跟你的静态文件夹的名字一点关系都没有
# 默认情况下这个前缀跟静态文件夹名字一样!!!
# 静态文件配置
STATICFILES_DIRS = [
    os.path.join(BASE_DIR,'static'),  # 就是你的静态文件夹路径
    os.path.join(BASE_DIR,'static1'),
    os.path.join(BASE_DIR,'static2')
]
# ps:会依次查找列表中所有的静态文件路径 找到的话立刻停止,都没有找到返回404

form表单触发提交数据动作的两种方式:

<input type='submit'>
<buttom></buttom>

form提交数据的地址的指定及方式

  action属性控制提交的地址

  方式:

    1、全路径

      <form action='http://127.0.0.1:8080/login/'>

    2、只写路径后缀

      <form action='/login/'>

    3、不写(默认往当前路径提交)

 

  form表单默认的是get请求

#根据客户端请求方式的不同执行不同的逻辑代码
def login(request):
    # 获取用户端提交的请求方式
    print(request.method)  # 拿到的请求方式是全大写的字符串
    if request.method == 'GET':
    return render(request,'login.html')
    elif request.method == 'POST':
    return HttpResponse("收到了 老弟")


#个人建议按照下面这种方式书写 减少代码冗余及结构混乱的问题
def login(request):
    if request.method == 'POST':
    return HttpResponse('OK')
    return render(request,'login.html')
def login(request):
    # 获取用户端提交的请求方式
    print(request.method)  # 拿到的请求方式是全大写的字符串
    # if request.method == 'GET':
    #     return render(request,'login.html')
    # elif request.method == 'POST':
    #     return HttpResponse("收到了 老弟")
    if request.method == 'POST':
        print(request.POST)  # 你就把它当成一个大字典里面存放了客户端post提交的所有的数据
        # request.POST:< QueryDict: {'username': ['jason'], 'password': ['123']} >
        print(request.POST.get('username'))  # value虽然是个列表但是获取value的时候拿到却是单个元素
        # 默认只会取value列表里面的最后一个元素
        # request.POST:<QueryDict: {'username': ['jason', 'egon'], 'password': ['123']}>
        print(request.POST.getlist('username'))  # 要想一次性获取value列表里面所有的数据需要用getlist()
        # ['jason', 'egon']
    print(request.POST['password'])  # 不推荐使用该方法获取数据
        return HttpResponse('OK')
    return render(request,'login.html')
# 获取value列表里面所有的元素需要使用getlist  应用场景:用户的爱好 多选框
# get只会获取到value列表的最后一个元素

print(request.GET)  # <QueryDict: {'username': ['jason'], 'password': ['123']}>
    request.GET.get('user')  

    request.GET.getlist('username')

django连接数据库

1、需要修改配置文件

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'day54',
        'HOST':'127.0.0.1',
        'PORT':3306,
        'USER':'root',
        'PASSWORD':'123'
            }
        }

# 注意:键必须大写

2、告诉django用pymysql替换它默认的mysqldb模块连接数据库

  方式1:在你的项目文件夹下面的__init__.py

  方式2:也可以在你的应用文件夹下面的__init__.py

#固定写法
import pymysql
pymysql.install_as_MySQLdb()  # 告诉django用pymysql代替mysqldb连接数据库

 

ORM注意:

  • django的orm不能够自动帮你创建库,但是可以自动帮你创建表
  • 一个django项目就使用一个库,不要多个django项目使用一个库

数据库迁移(同步)命令(******)

  1. python3 manage.py makemigrations  将你的数据库变动记录到一个小本本上(并不会帮你创建表)
  2. python3 manage.py migrate         将你的数据库变动正在同步到数据库中

新增数据

# 操作数据库user表插入数据
# 方式1:
user_obj = models.User.objects.create(name=username,password=password)
# 方式2:
user_obj = models.User(name=username,password=password)
user_obj.save()  # 对象调用save方法保存到数据库

查询数据

user_list = models.User.objects.all()  # 获取user表所有的数据
# 只要是QuerySet就可以点query查看获取到当前QuerySet对象的内部sql语句
print(user_list.query) 

注意:

  • queryset对象支持索引取值 但是不推荐你使用  推荐使用自带的.first()帮你获取第一条数据

 删除数据

# 会将queryset所有的数据对象全部删除
models.User.objects.filter(id=1).delete()  


# 查询数据需要注意的是你获取到的到底是一个queryset还是一个数据对象

# 如果你是要获取数据对象first千万别忘了
user_query = models.User.objects.filter(id=edit_id).first()  

# filter当条件不存在的情况下会返回一个空的queryset对象
<QuerySet []> <class 'django.db.models.query.QuerySet'>

# 用get可以直接获取到数据对象本身但是查询条件不存在的情况下直接报错
user_obj = models.User.objects.get(id=edit_id)  

编辑数据

# 编辑对象的id的获取方式
# 方式1:利用input隐藏一个标签
<input type="hidden" name="edit_id" value="{{ user_obj.pk }}">
# 方式2:
<form action="/edit/?edit_id={{ user_obj.pk }}" method="post">



# 注意:queryset对象点修改 删除 会作用于对象内部所有的数据对象  类似于批量操作
# 方式1:
models.User.objects.filter(id=edit_id).update(name=username,password=password)
# 方式2:获取到当前数据对象
user_obj = models.User.objects.filter(id=edit_id).first()
user_obj.name = username
user_obj.save()

user_query = models.User.objects.filter(id=edit_id).first()  # 如果你是要获取数据对象first千万别忘了# filter当条件不存在的情况下会返回一个空的queryset对象<QuerySet []> <class 'django.db.models.query.QuerySet'>
user_obj = models.User.objects.get(id=edit_id)  # 用get可以直接获取到数据对象本身但是查询条件不存在的情况下直接报错

### 回答1: Python是一种高级编程语言,它具有简单易学、功能强大和可扩展性等特点。Django一个Python的Web框架,它提供了许多工具和库,帮助我们更快速地开发Web应用程序。PyCharm是一种Python开发环境,它提供了丰富的功能,帮助我们更有效地编写、调试和管理Python代码。MySQL是一种流行的关系型数据库管理系统,它可以与Python和Django结合使用,用于存储和管理数据。 Python和Django的结合可以帮助我们快速、高效地开发Web应用程序。Django提供了许多功能强大且易于使用的模块和工具,包括URL路由、模板引擎、表单处理、用户认证等。使用Django,我们可以快速地建立数据库模型、处理用户请求和生成网页模板等。 PyCharm作为一个Python开发环境,提供了很多方便的功能。例如,它可以自动补全代码、提供调试器和错误检查工具,还可以集成版本控制系统等。使用PyCharm,我们可以更高效地编写、调试和管理Python代码。 MySQL一个功能强大的关系型数据库系统。它可以与Python和Django结合使用,用于存储和管理数据。我们可以使用Python的MySQL驱动程序连接到MySQL数据库,并执行诸如插入、更新和查询等操作。在Django中,我们可以使用它的ORM(对象关系映射)功能,通过类和对象的方式来操作数据库,这样可以更方便地进行数据库操作。 总的来说,Python、DjangoPyCharmMySQL是一组强大的工具,它们的结合可以极大地提高我们开发Web应用程序的效率和质量。无论是初学者还是有经验的开发者,都可以借助这些工具来快速构建功能完善、易于维护的Web应用程序。 ### 回答2: Python是一种高级编程语言,广泛用于Web开发、数据处理、人工智能等领域。它的语法简洁、易于学习,因此备受开发者的喜爱。 Django一个基于Python的Web框架,它提供了许多开发Web应用所需的功能和工具,如URL路由、模板引擎、表单处理等。使用Django可以快速搭建稳定、安全且易于维护的Web应用。 PyCharm是一款强大的Python集成开发环境(IDE),它提供了许多便捷的功能,如代码自动补全、调试器、版本控制工具等。使用PyCharm可以提高开发效率,减少错误。 MySQL是一种流行的关系型数据库管理系统。它使用结构化查询语言(SQL)作为操作语言,可以存储和管理大量结构化数据。Python通过各种数据库接口可以与MySQL进行连接,方便地进行数据读写操作。 结合Python、DjangoPyCharmMySQL,我们可以快速开发高效的Web应用。首先,使用PyCharm创建Django项目,然后在项目中编写Python代码和Django的相关配置,实现业务逻辑、URL路由等功能。通过Django的模板引擎,我们可以方便地渲染动态页面。同时,通过MySQL存储数据,我们可以使用Django提供的ORM工具进行数据库操作,使数据的读写更加简洁和安全。 总的来说,Python、DjangoPyCharmMySQL是一组强大的工具和技术,它们的结合可以帮助开发者快速构建高效、安全的Web应用,并进行灵活的数据操作。 ### 回答3: Python是一种高级编程语言,它具有简单易学、功能强大和灵活的特点。它被广泛应用于Web开发、数据分析、人工智能等领域。而Django一个基于Python的开源Web框架,它提供了一套完整的开发工具和规范,可以帮助开发者快速搭建高效、稳定的Web应用。 PyCharm是一种Python开发环境,它提供了丰富的代码编辑、调试和自动完成等功能,使开发过程更加便捷和高效。它可以与Django框架完美集成,提供强大的开发支持。 MySQL是一种流行的关系型数据库管理系统,它可以存储和管理大量的结构化数据,如用户信息、商品数据等。Python可以通过MySQL数据库驱动程序进行与数据库的交互操作。使用Python和MySQL可以实现数据的读取、插入、更新和删除等操作,为Web应用提供持久化的数据存储。 在使用Python开发Django应用时,可以借助PyCharm进行代码编辑和调试,并利用MySQL作为后台数据库进行数据存储和管理。PyCharm提供了强大的代码自动完成、语法检查和调试功能,可以大大提升开发效率和代码质量。同时,使用MySQL作为数据库可以保证数据的稳定性和安全性,满足对数据管理的需求。 总之,Python、DjangoPyCharmMySQL是一套非常强大的开发工具组合,可以帮助开发者高效、稳定地实现Web应用的开发和数据管理。通过它们的结合使用,可以快速搭建出高质量的Web应用,并实现与数据库的数据交互操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值