Django创建项目速成

server/2025/1/15 11:16:55/

目录

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 效果展示


http://www.ppmy.cn/server/158536.html

相关文章

基于YOLOv8与CGNet的鸟类智能识别系统 深度学习图像分类 鸟类目标检测与分类 图像特征提取 模型优化与应用 数据可视化(源码+指导+定制)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

【OJ刷题】同向双指针问题3

这里是阿川的博客&#xff0c;祝您变得更强 ✨ 个人主页&#xff1a;在线OJ的阿川 &#x1f496;文章专栏&#xff1a;OJ刷题入门到进阶 &#x1f30f;代码仓库&#xff1a; 写在开头 现在您看到的是我的结论或想法&#xff0c;但在这背后凝结了大量的思考、经验和讨论 目录 1…

Qt天气预报系统获取天气数据

Qt天气预报系统获取天气数据 1、获取天气数据1.1添加天气类头文件1.2定义今天和未来几天天气数据类1.3定义一个解析JSON数据的函数1.4在mainwindow中添加weatherData.h1.5创建今天天气数据和未来几天天气数据对象1.6添加parseJson定义1.7把解析JSON数据添加进去1.8添加错误1.9解…

【通信原理】为什么信号需要调制?

文章目录 1. 信号调制关键点:常见调制方式:应用:2. 信号如果不调制,直接发送会存在什么问题?1. 天线长度与波长的关系2. 低频信号的天线问题3. 高频信号的优势4. 调制的解决方案附:人耳能听到的声音的频率范围今天一个小朋友问我,信号为什么需要调制,直接发送不行吗,我…

3D目标检测数据集——Nusence坐标变换

目标框的标注格式 目标的标注信息包含如下几个字段: 字段名称含义visibility目标可见程度,分为0~40%, 40%~60%, 60%~80%, 80%~100%四类,用1-4表示category_name类别名称,包含10个检测类别translation3D框的中心位置(x,y,z),单位m,是全局坐标系下的坐标rotation3D框的旋转…

网易云上显示的ip属地准吗?一次深度探讨‌

在数字时代&#xff0c;随着各大社交平台对用户透明度和安全性的日益重视&#xff0c;IP属地显示功能逐渐成为标配。网易云音乐作为广受欢迎的在线音乐平台&#xff0c;也加入了这一行列。然而&#xff0c;对于网易云上显示的IP属地信息&#xff0c;许多用户心存疑问&#xff1…

利用Java爬虫获取淘宝商品描述item_get_descAPI接口

一、引言 在电子商务领域&#xff0c;商品描述是消费者了解商品详情的重要信息来源&#xff0c;对于商家的销售和消费者的购买决策都具有关键影响。淘宝作为国内领先的电商平台&#xff0c;其商品描述数据具有极高的价值。虽然淘宝开放平台提供了API接口&#xff0c;但这些接口…

idea无法下载源码

1. 方式一 在项目下&#xff0c;项目根目录下 或 pom.xml同级目录中执行 mvn dependency:resolve -Dclassifiersources然后点击“download source”时就能看到源码了。