Django创建项目速成

devtools/2025/1/23 20:52:19/

目录

1.创建项目

1.1 命令创建

1.2 pycharm创建

1.3 默认文件介绍

2.创建app

2.1 默认文件介绍

3.简单编写

3.1快速上手

确保app已经注册

编写url和视图函数的关系(创建关系)

编写视图函数

启动项目

4.模板语法

4.1 列表

4.2 字典

4.3 二维数组

4.4 注意

5.请求和响应

6.数据库操作

6.1 安装第三方模块

6.2 ORM

6.2.1 创建数据库

django%E8%BF%9E%E6%8E%A5%E6%95%B0%E6%8D%AE%E5%BA%93-toc" style="margin-left:80px;">6.2.2 django连接数据库

django%E6%93%8D%E4%BD%9C%E8%A1%A8-toc" style="margin-left:80px;">6.2.3 django操作表

6.2.4 操作表中的数据

在views层进行操作,先导入

   增加操作

   删除操作

7.用户管理案例

7.1 展示用户列表

7.1.1 url

7.1.2 函数

7.2 添加用户

7.2.1 url

7.2.2 函数

7.3 删除用户

7.4 效果展示


1.创建项目

有两种方法,用命令创建或者用pycharm创建。、

1.1 命令创建

  • 打开cmd。

  • 进入想放置的目录。

    D:\pythonStudy\django

  • 执行命令创建项目.

    D:\pythonStudy\django>django-admin startproject 项目名称

1.2 pycharm创建

新建一个django项目

特殊说明:

  • 命令行,创建的项目是标准的。

  • pycharm,会自动加上东西

    • 创建了一个templates文件

    • 终端创建

    • pycharm创建

1.3 默认文件介绍

D:.
│  manage.py		【项目管理、启动项目、创建app、数据管理】
└─mysitesettings.py	【项目配置 频繁】urls.py		【url和函数的配置关系 频繁】init.pywsgi.py		【接收网络请求】asgi.py		【接收网络请求】

2.创建app

PS D:\pythonStudy\django\mysite> python manage.py startapp app01

2.1 默认文件介绍

3.简单编写

3.1快速上手

确保app已经注册

编写url和视图函数的关系(创建关系)

编写视图函数

启动项目

命令启动:python manage.py runserver

pycharm启动

4.模板语法

4.1 列表

这种方法显示列表形式,通过加索引显示列表内容

循环列表显示所有内容

4.2 字典

字典的几种遍历方式

4.3 二维数组

4.4 注意

5.请求和响应

6.数据库操作

  • mysql数据库+pymysql

  • django开发操作数据库更简单 ,orm框架

6.1 安装第三方模块

pip install mysqlclient

6.2 ORM

ORM可以帮助我们做两件事情:

  • 创建、修改、删除数据库中的表(不用写SQL语句)。

  • 操作表中的数据,不用写SQL语句。

6.2.1 创建数据库

  • 启动数据库

  • 创建数据库

django%E8%BF%9E%E6%8E%A5%E6%95%B0%E6%8D%AE%E5%BA%93">6.2.2 django连接数据库

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

django%E6%93%8D%E4%BD%9C%E8%A1%A8">6.2.3 django操作表

models模块操作

class UserInfo(models.Model):name=models.CharField(max_length=32)password=models.CharField(max_length=64)age=models.IntegerField()

执行命令:

makemigrations

migrate

注意:app已经注册

在表中新增列时,由于列中可能已有数据,所以新增列必须要指定新增列对应的数据

  • 设置默认值

    age =models.IntergerField(default=2)
  • 允许为空

    data=models.IntergerField(null=True,blank=True)
    

以后在开发中如果想要对表结构进行调整:

  • 在models.py文件中操作类即可

  • 命令

    makemigration
    migrate

6.2.4 操作表中的数据

在views层进行操作,先导入
from project.models import UserInfo
   增加操作
def test2(request):UserInfo.objects.create(name="张三",password="1234",age=19)return HttpResponse("成功")
   删除操作
UserInfo.objects.filter(id=2).delete()(通过筛选数据进行删除操作)
User.objects.all().delete()(直接清空表中的全部数据)获取操作

形式为列表[对象,对象,对象]

  • 获取全部数据,通过遍历

    data_list=UserInfo.objects.all()for obj in data_list:print(obj.id,obj.name,obj.password,obj.age)
  • 获取一行数据

     row_obj=UserInfo.objects.filter(id=1).first()print(row_obj.id,row_obj.name,row_obj.password,row_obj.age)
  • 更新

UserInfo.objects.filter(id=2).update(age=999)
UserInfor.objects.filter(name="张三").update(age=999)

7.用户管理案例

7.1 展示用户列表

7.1.1 url

7.1.2 函数

(1)获取所有用户的信息

(2)HTML渲染

  • url层配置路径

    path('list/',views.list)
  • 确认settings连接数据库,models层建数据库表,建立前端网页html

  • views层获取数据库所有用户的信息,将data_list接收获取的数据,将其传到HTML层中。此处用到模板语法

    def list(request):#1.获取数据库中所有的用户信息data_list=UserInfo.objects.all()for obj in data_list:print(obj.password)
    ​return render(request,"list.html",{"data_list":data_list})

7.2 添加用户

7.2.1 url

7.2.2 函数

(1)GET,看到页面,输入内容

(2)POST,提交写入数据库

  • url层

    path('add/',views.add)
  • HTML层

    def add(request):if request.method=="GET":return render(request,'add.html')<form method="post">{% csrf_token %}<input type="text" name="user" placeholder="用户名"><input type="text" name="pwd" placeholder="密码"><input type="text" name="age" placeholder="年龄"><input type="submit" value="提交">
    </form>      
     
  • views层

    #获取用户提交的数据user=request.POST.get("user")pwd=request.POST.get("pwd")age=request.POST.get("age")#添加到数据库UserInfo.objects.create(name=user,password=pwd,age=age)
  • views层的自动跳转,后面接的页面也可以是在add页面后的页面,例如写return redirect("list/")就会自动跳转到"http://127.0.0.1:8000/add/list/"中

    首先给redirect进行from导入

    from django.shortcuts import render,HttpResponse,redirect
    return redirect("http://127.0.0.1:8000/list/")

7.3 删除用户

第一种,可以通过网址的更改进行删除操作

http://127.0.0.1:8000/delete/?nid=1(/2/3)

第二种,更直观

  • urls层

     path('delete/',views.delete)

  • views层

    def delete(request):nid=request.GET.get('nid')UserInfo.objects.filter(id=nid).delete()return redirect("http://127.0.0.1:8000/list/")#实现操作后跳转到这个页

  • html层

    <td><a href="http://127.0.0.1:8000/delete/?nid={{ obj.id }}">删除</a>
    ​
    </td>

    7.4 效果展示

文章来源:https://blog.csdn.net/snowy_and_sunny/article/details/145136938
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ppmy.cn/devtools/150664.html

相关文章

Vue.js 组件开发:构建可复用的UI元素

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

使用rknn进行retinaface部署(C++)

文章目录 RetinaFace导出ONNX导出RKNN编译运行学生课堂开源数据集RetinaFace RetinaFace是一种基于深度学习的高性能人脸检测方法,由InsightFace团队提出。它的核心思想是在单阶段检测器(如RetinaNet)的基础上,结合多任务学习来实现精确的人脸检测和特征点定位。以下是Ret…

机器人碳钢去毛刺,用大扭去毛刺主轴可轻松去除

在碳钢精密加工的最后阶段&#xff0c;去除毛刺是确保产品质量的关键步骤。面对碳钢这种硬度较高的材料&#xff0c;采用大扭矩的SycoTec去毛刺主轴&#xff0c;成为了行业内的高效解决方案。SycoTec作为精密加工领域的领军品牌&#xff0c;其生产的高速电主轴以其卓越的性能&a…

C#解决浮点数精度丢失的问题(参考方案)

问题描述 直接看代码 按照正常来说这里因该打印的结果是0.1 但是这里精度丢失了&#xff0c;这里我试了很多办法最终想到了下面的解决办法。 这时候我们需要用逆转的思路来解决问题。 既然浮点数有问题那么直接把它转成整数不就行了。 用这种方法就可以打印出一个数的小数部…

概率函数,累计分布函数

四. 累计分布函数 1. 累计分布函数&#xff08;CDF, Cumulative Distribution Function&#xff09; 累计分布函数是用来描述随机变量取值小于或等于某个给定值的概率。它适用于离散型和连续型随机变量&#xff0c;并且能够通过概率质量函数&#xff08;PMF&#xff09;或概率…

selenium在Linux环境下截屏(save_screenshot)中文乱码的问题

在Linux环境下会browser.save_screenshot方法保存的图片中中文乱码&#xff0c;不便于排查问题&#xff0c;解决办法如下&#xff1a; 1、设置浏览器options选项 options.add_argument("--langzh-CN") # 设置语言为中文 2、安装中文字体 apt-get update apt-get in…

《使用深度生成学习预测无对比心脏电影 MRI 中急性心肌梗死的晚期钆增强》论文精度

Predicting Late Gadolinium Enhancement of Acute Myocardial Infarction in Contrast-Free Cardiac Cine MRI Using Deep Generative Learning 背景&#xff1a;晚期钆增强 (LGE) 心脏磁共振 (CMR) 是诊断心肌梗死 (MI) 的标准技术&#xff0c;然而&#xff0c;由于使用钆造…

Swagger生成Api文档的增强解决方案--knife4j

方法一&#xff1a; 使用步骤 1.导入 knife4j 的maven坐标 在pom.xml中添加依赖 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId><version>4.5.0</ver…