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

python之使用django框架开发web项目

        本问将对django框架在python的web项目中的使用进行介绍,有不对之处,烦请指正。

        首先使用创建一个django工程(本示例中使用pycharm2024+python3.12),名称和项目保存路径根据自己的需要自行修改,新手直接默认本机环境就好(关于conda将会另开一篇进行讲解。),最后点击create即可。

interpreter type:表示项目运行的环境

        -project venv:本机的环境

        -base conda:使用conda创建的虚拟环境(其中windows系统可以使用anaconda或者minconda)

        -custom environment:自定义

1、目录

manage.py : 项目的管理,启动项目‘创建app、数据管理 【不要动,常用】

项目同名文件夹:

  • __init__.py

  • asgi.py:接收网络请求 【不要动】

  • settings.py:项目配置文件 【**常操作*****】

  • urls.py: URL和函数的对应关系【**常操作*****】

  • wsgi.py:接收网络请求 【不要动】

删除settings.py文件中的DIR templates

2、创建app

python manage.py startapp app01 增加 app01

--migrations 固定,不用动 数据库变更记录

--__init__.py

--__init__.py

--admin.py 固定,不用动 默认提供了admin后台管理

--apps.py 固定,不用动 app启动类

--models.py 重要,对数据库操作

--tests.py 单元测试 固定,不用动

--views.py 重要,视图函数

3、注册app

在settings.py文件中找到 INSTALLED_APPS,增加'app01.apps.App01Config',

app01.apps.App01Config为对2中创建的app目录里面apps.py里面的类

--javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','app01.apps.App01Config',  #  注册app
]

4、编写URL和视图函数的对应关系【urls.py】

--javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

from django.contrib import admin
from django.urls import path
#1、导入app的views
from app01 import viewsurlpatterns = [path('admin/', admin.site.urls),#2、增加对应关系path('index/', views.index),# 通过url传值    django3中才有这种方式,1中需要写正则表达式path('useredit/<int:nid>', views.user_list),
]

5、编写对应视图函数【views.py】

--javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

from django.http import HttpResponse
from django.shortcuts import render# Create your views here.#request参数是默认必须的
def index(request):return HttpResponse("Hello, world. You're at the polls index.")def useredit(req,nid):return render(req, 'useredit.html')

6、启动项目

--目录启动: python manage.py runserver

--pycharm:

7、页面模版

7.1 加载顺序

--javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

#1、优先去项目根目录的templates中寻找(提前先配置)【不配置无效】
#2、根据app的注册顺序,逐一去他们的templates目录中找

7.2 模版的继承

layout.html模版文件

--javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

<div>{% block content %}{% endblock %}
</div>

继承的html文件

--javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

{#模版继承#}
{% extends 'layout.html' %}{% block content %}<h1>首页</h1>{% endblock %}

注意

form表单无法访问跳转页面是,需要在form表单里面增加一行:{% csrf_token %}

8、静态文件

创建static文件夹

-css

-img

-js

-plugins

--javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

{% load static %}<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><img src="{% static 'img/1.png' %}"><h1>用户列表</h1>
</body>
</html>

9、操作数据库:orm框架

pip install mysqlclient(等价于pymysql)

9.1 ORM

1 、创建、修改、删除数据库的表(不用写sql,但是无法创建数据库)

2、操作表中数据

9.2 连接数据库

在settings.py中修改默认配置

--javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

DATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': BASE_DIR / 'db.sqlite3',}
}

在python3中,mysql使用mysqlclient

9.3 操作表

创建表:在models.py文件中:

--javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

class UserInfo(models.Model):name = models.CharField(max_length=32, verbose_name='姓名')password = models.CharField(max_length=64, verbose_name='密码')email = models.EmailField(verbose_name='邮箱')phone = models.CharField(max_length=11, verbose_name='手机号')gender_choices = ((1, '男'),(2, '女'),)gender = models.IntegerField(choices=gender_choices, verbose_name='性别')depart = models.ForeignKey(to='Department', on_delete=models.CASCADE, verbose_name='部门')create_time = models.DateTimeField(verbose_name='创建时间', aut

相关文章:

python之使用django框架开发web项目

本问将对django框架在python的web项目中的使用进行介绍,有不对之处,烦请指正。 首先使用创建一个django工程(本示例中使用pycharm2024+python3.12),名称和项目保存路径根据自己的需要自行修改,新手直接默认本机环境就好(关于conda将会另开一篇进行讲解。),最后点击cre…...

ChatGPT 桌面版发布了,如何安装?

本章教程教大家如何进行安装。 一、下载安装包 官网地址地址&#xff1a;https://openai.com/chatgpt/desktop/ 支持Windows和MacOS操作系统 二、安装步骤 Windows用户下载之后&#xff0c;会有一个exe安装包&#xff0c;点击运行安装即可。 注意事项&#xff0c;如果Windows操…...

ubuntu 配置 多个 git 客户端 账户

Git配置两个或多个账户 https://blog.csdn.net/mainking2003/article/details/134711865 git 提交 不用输入用户名、密码的方法&#xff08;GIT免密提交&#xff09; https://blog.csdn.net/wowocpp/article/details/125797263 git config 用法 https://blog.csdn.net/blueb…...

React Native的界面与交互

React Native (RN) 是一个由 Facebook 开发的开源框架&#xff0c;用于构建跨平台的移动应用程序。它允许开发者使用 JavaScript 和 React 来创建原生 iOS 和 Android 应用。RN 的出现极大地简化了移动应用的开发过程&#xff0c;使得开发者可以更快速、更高效地构建高质量的应…...

autogen+ollama+litellm实现本地部署多代理智能体

autogen 是一个专门为大语言模型 (LLMs) 驱动的自治代理 (autonomous agents) 设计的 Python 库,由 Microsoft 开发和维护。它通过高度模块化和可扩展的架构,支持用户快速构建和运行多代理系统,这些代理可以在没有明确人类干预的情况下协作完成复杂任务。AutoGen 支持以最少…...

InstantStyle容器构建指南

一、介绍 InstantStyle 是一个由小红书的 InstantX 团队开发并推出的图像风格迁移框架&#xff0c;它专注于解决图像生成中的风格化问题&#xff0c;旨在生成与参考图像风格一致的图像。以下是关于 InstantStyle 的详细介绍&#xff1a; 1.技术特点 风格与内容的有效分离 &a…...

百度主动推送可以提升抓取,它能提升索引量吗?

站长在建站SEO的时候&#xff0c;需要用到百度站长平台&#xff08;资源平台&#xff09;的工具&#xff0c;在站长工具中【普通收录】-【资源提交】-【API提交】这个功能&#xff0c;对网站的抓取进行一个提交。 这里估计很多站长就有疑问&#xff0c;如果我主动推送&#xf…...

A045-基于spring boot的个人博客系统的设计与实现

&#x1f64a;作者简介&#xff1a;在校研究生&#xff0c;拥有计算机专业的研究生开发团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339; 赠送计算机毕业设计600…...

JavaEE 【知识改变命运】02 多线程(1)

文章目录 线程是什么&#xff1f;1.1概念1.1.1 线程是什么&#xff1f;1.1.2 为什么要有线程1.1.3 进程和线程的区别1.1.4 思考&#xff1a;执行一个任务&#xff0c;是不是创建的线程或者越多是不是越好&#xff1f;&#xff08;比如吃包子比赛&#xff09;1.1.5 ) Java 的线程…...

Pytorch使用手册-Transforms(专题四)

Transforms(变换) 在 PyTorch 数据处理中的重要性和使用方法,特别是如何通过 torchvision.transforms 模块对数据进行预处理和变换,使其适合用于训练机器学习模型。以下是具体的内容解读: 什么是 Transforms? 数据通常在收集后并非直接适合用于训练机器学习模型,需要通…...

【Android】ARouter的使用及源码解析

文章目录 简介介绍作用 原理关系 使用添加依赖和配置初始化SDK添加注解在目标界面跳转界面不带参跳转界面含参处理返回结果 源码基本流程getInstance()build()navigation()_navigation()Warehouse ARouter初始化init帮助类根帮助类组帮助类 completion 总结 简介 介绍 ARouter…...

ValueError: bbox_params must be specified for bbox transformations

错误 ValueError: bbox_params must be specified for bbox transformations 是因为使用了需要处理边界框&#xff08;bboxes&#xff09;的增强操作&#xff0c;但在 albumentations.Compose 中没有正确设置bbox_params 参数。 bbox_params 是用来指定如何处理边界框的配置。…...

挂壁式空气净化器哪个品牌的质量好?排名top3优秀产品测评分析

随着挂壁式空气净化器市场的不断扩大&#xff0c;各类品牌与型号琳琅满目。但遗憾的是&#xff0c;一些跨界网红品牌过于追求短期效益&#xff0c;导致产品在净化效果与去除异味方面表现平平&#xff0c;使用体验不佳&#xff0c;甚至可能带来二次污染风险&#xff0c;影响人体…...

钉钉数据如何高效集成到金蝶云星空系统

钉钉数据集成到金蝶云星空的技术案例分享 在企业日常运营中&#xff0c;办公用品采购流程的高效管理至关重要。为了实现这一目标&#xff0c;我们采用了轻易云数据集成平台&#xff0c;将钉钉中的采购申请单数据无缝对接到金蝶云星空系统中。本次案例将详细解析【办公用品采购…...

躺平成长-腾讯云数据库(又消失了一次)

开源竞争&#xff1a; 当你无法彻底掌握技术的时候&#xff0c;你就开源这个技术&#xff0c;形成更多的技术依赖&#xff0c;你会说 这不就是在砸罐子吗&#xff1f;一个行业里面总会有人砸罐子的&#xff0c;你不如先砸罐子&#xff0c;还能听个响声。 数据库的里面清洁的数据…...

初学 flutter 问题记录

windows搭建flutter运行环境 一、运行 flutter doctor遇到的问题 Xcmdline-tools component is missingRun path/to/sdkmanager --install "cmdline-tools;latest"See https://developer.android.com/studio/command-line for more details.1&#xff09;cmdline-to…...

Hadoop的MapReduce详解

文章目录 Hadoop的MapReduce详解一、引言二、MapReduce的核心概念1、Map阶段1.1、Map函数的实现 2、Reduce阶段2.1、Reduce函数的实现 三、MapReduce的执行流程四、MapReduce的使用实例Word Count示例1. Mapper类2. Reducer类3. 执行Word Count 五、总结 Hadoop的MapReduce详解…...

全新配置ubuntu18.04深度学习环境

1、下载显卡驱动 1.1、驱动下载 连接&#xff1a;显卡驱动 手动驱动搜索-》查找-》查看-》下载 下载可使用指令 wget https://us.download.nvidia.com/XFree86/Linux-x86_64/535.216.01/NVIDIA-Linux-x86_64-535.216.01.run 2、下载安装cuda12.0 wget https://developer.do…...

持续集成与持续部署:CI/CD实现教程

以下是一个基于常见工具实现 CI/CD 的基本教程示例&#xff0c;这里以 Git、Jenkins、Maven&#xff08;用于 Java 项目构建和管理依赖&#xff0c;其他语言项目可替换为对应构建工具&#xff09;以及 Docker&#xff08;用于容器化部署&#xff0c;非必需但很常用&#xff09;…...

深度学习实验十二 卷积神经网络(3)——基于残差网络实现手写体数字识别实验

目录 一、模型构建 1.1残差单元 1.2 残差网络的整体结构 二、统计模型的参数量和计算量 三、数据预处理 四、没有残差连接的ResNet18 五、带残差连接的ResNet18 附&#xff1a;完整的可运行代码 实验大体步骤&#xff1a; 先前说明&#xff1a; 上次LeNet实验用到的那…...

【Java Web学习 | 第十篇】JavaScript(4) 对象

【Java Web学习 | 第十篇】JavaScript(4) - 对象&#xff08;Object&#xff09;深度详解&#xff08;2026最新版&#xff09; 恭喜你完成数组与函数进阶&#xff01; 对象&#xff08;Object&#xff09; 是 JavaScript 中最重要、最核心的数据结构。在 Java Web 开发中&…...

从变砖到重生:红魔全系9008深度救砖指南与实战解析

1. 什么是9008模式&#xff1f;为什么能救砖&#xff1f; 当你发现红魔手机卡在开机界面、反复重启甚至完全黑屏时&#xff0c;大概率是遇到了传说中的"变砖"。这时候高通芯片隐藏的9008模式就是最后的救命稻草。简单来说&#xff0c;9008模式相当于电脑的BIOS界面&…...

从FasterRCNN到自定义检测器:SimpleDet扩展开发完全手册

从FasterRCNN到自定义检测器&#xff1a;SimpleDet扩展开发完全手册 【免费下载链接】simpledet A Simple and Versatile Framework for Object Detection and Instance Recognition 项目地址: https://gitcode.com/gh_mirrors/si/simpledet SimpleDet是一个简单且多功能…...

Audio2Face深度解析:音频驱动面部动画的技术架构与实战指南

Audio2Face深度解析&#xff1a;音频驱动面部动画的技术架构与实战指南 【免费下载链接】FACEGOOD-Audio2Face http://www.facegood.cc 项目地址: https://gitcode.com/gh_mirrors/fa/FACEGOOD-Audio2Face 在虚拟数字人快速发展的今天&#xff0c;如何让虚拟角色拥有自然…...

立创·地阔星开发板开箱测评:除了点灯,STM32F103C8T6还能怎么玩?(附资源下载与避坑指南)

立创地阔星开发板深度探索&#xff1a;从开箱到创意项目实战 拆开快递包装的那一刻&#xff0c;这块蓝色PCB板安静地躺在防静电袋里——这就是最近在创客圈备受关注的立创地阔星开发板。作为一款基于STM32F103C8T6芯片的高性价比开发平台&#xff0c;它不仅适合初学者入门&…...

为MusicBee集成网易云音乐同步歌词的技术实现方案

为MusicBee集成网易云音乐同步歌词的技术实现方案 【免费下载链接】MusicBee-NeteaseLyrics A plugin to retrieve lyrics from Netease Cloud Music for MusicBee. 项目地址: https://gitcode.com/gh_mirrors/mu/MusicBee-NeteaseLyrics MusicBee作为一款功能强大的本地…...

从PolarCTF一道Crypto题,聊聊如何用SageMath秒解自定义群运算的离散对数问题

从PolarCTF一道Crypto题看SageMath在离散对数问题中的实战应用 1. 密码学竞赛中的非标准群运算挑战 在CTF密码学题目中&#xff0c;自定义群运算的离散对数问题&#xff08;DLP&#xff09;是常见的高频考点。近期PolarCTF竞赛中出现了一道典型题目&#xff0c;要求参赛者在非…...

让按钮并排布局的艺术

在前端开发中,我们经常需要面对如何让一系列的按钮并排显示而不堆叠在一起的问题。今天,我将带你深入了解如何使用CSS的Flexbox布局来解决这个问题,并通过一个具体的例子展示如何实现这一效果。 问题背景 假设我们有一个页面,包含多个按钮,这些按钮默认情况下是垂直堆叠…...

OpenClaw开源项目深度体验:对比其与星图GPU平台Qwen3-14B-Int4-AWQ部署差异

OpenClaw开源项目深度体验&#xff1a;对比其与星图GPU平台Qwen3-14B-Int4-AWQ部署差异 1. 项目概览与核心功能 OpenClaw是近期备受关注的开源大模型项目&#xff0c;主打轻量化和易部署特性。它采用混合专家架构(MoE)&#xff0c;在保持模型性能的同时显著降低了计算资源需求…...

OpenCVSharp摄像头开发避坑指南:C#实现高清录像+实时滤镜(WinForm版)

OpenCVSharp工业级摄像头开发实战&#xff1a;高清录像与实时滤镜的进阶技巧 在工业视觉检测和实时直播领域&#xff0c;稳定高效地采集视频流是核心需求。C#开发者常选择OpenCVSharp作为计算机视觉开发工具&#xff0c;但实际应用中总会遇到帧率不稳定、资源泄漏或参数配置不当…...