django简单增删改查应用

本文详细介绍了如何使用PyCharm和Django框架搭建应用,包括项目创建、数据库配置、模型定义、URL与VIEW配置等核心步骤,并提供了增删改查操作示例。

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

pycharm新建django应用

1.首先安装django

pip install Django==2.2.6

2.创建django项目
在这里插入图片描述
3、创建应用

python manage.py startapp help

在这里插入图片描述
4、注册应用
在这里插入图片描述

数据库配置

1、配置数据库
配置Django02/setting.py下的DATABASE如下:

DATABASES = {
    'default': {
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
         'ENGINE': 'django.db.backends.mysql',
         'NAME':'help', # 数据库名,使用的数据库必须先手动创建
         'USER':'root', # 连接mysql的用户名
         'PASSWORD':'root', #密码
         'HOST':'localhost', #指定mysql数据库所在的电脑ip
         'PORT':3306, # 数据库端口号
    }
}

2.安装mysql

pip install pymysql

3.init.py添加代码

import pymysql
pymysql.install_as_MySQLdb()

4.兼容性问题

将venv\lib\site-packages\django\db\backends\mysql\base.py"在这个路径里件把base.py
if version < (1, 3, 3):
raise ImproperlyConfigured(“mysqlclient 1.3.3 or newer is required; you have %s” % Database.version)
注释掉

\venv\lib\site-packages\django\db\backends\mysql\operations.py中
query = query.decode(errors=‘replace’),把decode改为encode即可。

定义模型

1.模型
模型类被定义在"应用/models.py"文件中,此例中为"mysqltest/models.py"文件。
模型类必须继承自Model类,位于包django.db.models中。
提示:对于重要数据使用逻辑删除。
from django.db import models

Create your models here.

#用户模型

class User(models.Model):
     # 用户编号
     user_no = models.CharField(max_length=200)
     # 用户微信名
     wechat_name = models.CharField(max_length=100, null=True, blank=True)#null代表数据库可为空,blank代表admin页面中表单可为空
     # 用户头像url
     wechat_pic = models.CharField(max_length=100, null=True, blank=True)
     # 用户创建时间
     create_date = models.DateField()
     # 金币量
     gold = models.IntegerField(default=50)

#互助表
class HelpInfo(models.Model):
    # 申请用户
    applyuser = models.ForeignKey('User', on_delete=models.CASCADE)
    # 申请时间
    apply_date = models.DateField()
    # 链接
    url = models.CharField(max_length=500)
    # 标题
    title = models.CharField(max_length=100)
    # 内容
    content = models.CharField(max_length=1000)
    # 状态 1-代助力 2-已助力待确认 3-已助力
    status = models.IntegerField(default=1)

#互助表
class HelpLog(models.Model):
    # 互助总表
    help_info = models.ForeignKey('HelpInfo', on_delete=models.CASCADE)
    # 处理时间
    deal_date = models.DateField()
    # 处理人员
    deal_user = models.ForeignKey('User', on_delete=models.CASCADE)
    # 处理状态1-助力待确认 2-已确认 3-已驳回
    status = models.IntegerField(default=1)

2.迁移
生成迁移文件。
python manage.py makemigrations

3.执行如下命令生成表。
python manage.py migrate

URL配置

在根目录下urls.py配置

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('help/', include('help.urls')),
    path('admin/', admin.site.urls)
]

在创建的help目录下创建urls.py,填写你所需要的接口

from . import views
from django.urls import include, path
from django.views.generic import TemplateView

urlpatterns = [
    path('', views.index, name='index'),
    path('list', views.listall, name='listall'),
]

VIEW配置

进入view.py

def listall(request):
    q_username = request.GET.get("username")
    list = models.HelpInfo.objects.filter(~Q(applyuser__user_no=q_username), status=1).order_by("-id")  # 从mysql查询所有
    data = {}  # 返回给页面的数据
    data['list'] = list
    data['totalpage'] = math.ceil(len(list) / 10)
    return render(request, 'help/listall.html', data)

此处我把增删改查主要用到的操作列举一下。
1.查询(多种查询条件)

q_time = request.GET.get("time") #获取前端上送的值
q_status = request.GET.get("status")
search_dict = dict()
if q_username:
    search_dict['applyuser__user_no'] = q_username#applyuser为foreignkey,这里代表applyuser表中userno字段
if q_time:
    search_dict['apply_date_year'] = q_time[0:4] #apply_date为datefield,可通过年月日筛选
    search_dict['apply_date_month'] = q_time[4:6]
    search_dict['apply_date_day'] = q_time[6:8]
if q_status:
    search_dict['status'] = q_status
list = models.HelpInfo.objects.filter(**search_dict).order_by("-id")  # 从mysql查询
#或者
list = models.HelpInfo.objects.filter(~Q(applyuser__user_no=q_username), status=1).order_by("-id") #~Q代表不等于

2.新增
help= models.HelpInfo()
help.applyuser = helpinfo.applyuser
help.apply_date = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) # %H:%M:%S
help.title = helpinfo.title
help.content = helpinfo.content
help.url = helpinfo.url
help.status = 1
help.save()#保存
3.修改
helpinfo = models.HelpInfo.objects.get(id=id)#获取需要修改的对象
helpinfo .title = “123”
helpinfo.save()
4.删除

helpinfo = models.HelpInfo.objects.get(id=id)#根据id获取数据
helpinfo.delete() #删除

WECHAT-SDK安装

wechat-sdk依赖于pycrypto-2.6.1,pycrypto依赖于vs2015 C++。
安装完[C++软件](地址:https://pan.baidu.com/s/18bjsvBIgBAhn5_6ApMcFew 密码: zkzf)后,设置VCINSTALLDIR环境变量, 设置为:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC
打开CMD,键入set CL=/FI"%VCINSTALLDIR%\INCLUDE\stdint.h" 。再用pip install pycrypto就可以成功。(我在pycharm的terminal里面试了无数次都失败了,发现只能从cmd中安装。。。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值