当前位置: 首页 > article >正文

Django创建项目速成

目录

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 创建数据库

6.2.2 django连接数据库

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、数据管理】
└─mysite
        settings.py	【项目配置 频繁】
        urls.py		【url和函数的配置关系 频繁】
        init.py
        wsgi.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 创建数据库

  • 启动数据库

  • 创建数据库

6.2.2 django连接数据库

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

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.kler.cn/a/508473.html

相关文章:

  • 【机器学习:三十二、强化学习:理论与应用】
  • 【ArcGIS微课1000例】0140:总览(鹰眼)、放大镜、查看器的用法
  • Spring Web MVC综合案例
  • 【Linux系列】查看服务器是否使用了 SSD 的多种方法
  • 51c大模型~合集106
  • OpenAI推出首个AI Agent!日常事项自动化处理!
  • ESP32云开发二( http + led + lcd)
  • Whisper-Medium 模型:音频转文本的原理、实践与硬件推荐
  • 深度学习-86-大模型训练之为什么要设计成预训练和微调两个阶段
  • 第十三章:数据库技术
  • GPT-5 传言:一场正在幕后发生的 AI 变革
  • OpenHarmony-Graphic_2d子系统
  • Reactor编程模型中,阻塞上传文件FilePart的3中方式
  • 蓝桥杯3527阶乘的和 | 组合数学
  • 从零搭建SpringBoot3+Vue3前后端分离项目基座,中小项目可用
  • PCL K4PCS算法实现点云粗配准【2025最新版】
  • 软件工程3.0时代,AI落地研效成熟时
  • idea创建SpringBoot自动创建Lombok无效果(解决)
  • 力扣刷题汇总
  • vue3 移动端h5 加载高德地图 封装地图组件
  • java springboot3.x jwt+spring security6.x实现用户登录认证
  • 宝塔自动备份数据库到阿里云 OSS
  • 基于docker微服务日志ELK+Kafka搭建
  • Vue.js组件开发-如何处理跨域请求
  • 项目开发实践——基于SpringBoot+Vue3实现的在线考试系统(六)
  • 审计文件标识作为水印打印在pdf页面边角