创建一个django项目详细说明

news2024/9/22 3:36:45

1.首先安装django

 

pip install django

2.创建django项目

django-admin startproject myproject

输入命令后自动生成相关文件

  • manage.py文件:这是管理Django项目的重要命令行工具,它主要用于启动项目、创建应用和完成数据库的迁移等。
  • settings.py文件:这是Django项目的配置文件,包含了项目的基本信息、静态文件路径、模板路径、中间件等。
  • urls.py文件:这是Django项目的路由文件,用于定义URL与视图函数之间的映射关系。
  • wsgi.py文件:这是Django项目的WSGI接口文件,用于将请求转发给相应的视图函数。

 3.运行这个django项目

 python manage.py runserver

 访问本地的连接

说明django项目已经创建成功

4.创建基本的框架后我们要进行创建具体的应用。

应用的名称为APP,此APP代指的就是应用。

举例我们创建一个网站、网站中有用户管理、财务管理等,那我们就可以创建两个APP

例如:APP-用户管理、APP-财务管理,方便我们在大的网站框架下好进行管理

此时我们使用命令创建一个应用

 python manage.py startapp student

  • __init__.py:这个文件是一个空文件,它告诉Python解释器将此文件夹视为一个包(package)。在Python中,包是一种组织模块和子模块的方式。
  • admin.py:这个文件包含Django admin站点的配置。当您在Django管理后台中注册模型时,这些配置将被应用到相应的模型上。
  • apps.py:这个文件通常位于每个应用的根目录下。它定义了一个应用类,该类继承自django.apps.AppConfig,并实现了一些方法,如ready()、name等。这些方法在应用启动时会被调用。
  • migrations/:这个文件夹包含了Django项目的数据库迁移文件。当您对模型进行更改时,需要创建新的迁移文件来描述这些更改。然后,您可以使用python manage.py migrate命令将这些更改应用到数据库。
  • models.py:这个文件包含了您的Django项目的所有模型定义。模型是用于表示数据库中表的结构的Python类。
  • tests.py:这个文件包含了针对您的Django项目中所有模型编写的测试代码。测试可以帮助确保您的代码按预期工作,并在发生更改时自动运行。
  • views.py:这个文件包含了处理HTTP请求的视图函数。视图函数接收HTTP请求作为参数,并返回HTTP响应。在Django中,视图函数通常与URL模式关联,以便根据用户请求的URL调用相应的视图函数。

 5.创建应用成功后,需要将APP应用进行注册

在项目文档中找到settings.py文件-INSTALLED_APPS配置文件中将创建的应用名称加到文件中,注意:新添加应用后必须在设置文件中进行注册

 6.注册完成后在进行数据库表的设计(以MySQL数据库为例)

在项目文档中找到settings.py文件-DATEBASES配置文件,修改自己的数据库配置

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.mysql",
        "NAME": "student",   #数据库名称
        "USER":"root",  #数据库账户名
        "PASSWORD":"123456",#数据库密码
        "HOST":"127.0.0.1",#数据库地址
        "POST":"3306", #数据库端口


    }
}

 可根据你的数据库类型进行设置-- 例如:

'django.db.backends.sqlite3',
'django.db.backends.postgresql',
'django.db.backends.mysql',
'django.db.backends.oracle'

7.在应用中的配置文件找到models.py 添加ORM框架的代码

输入命令进行数据库的表的初始化


python manage.py migrate

然后找到App应用的models.py文件 设计自己应用的数据库表

我设计一个班级表和学生表如下:

此方式就是根据django的ORM架构设计的数据表,它会帮我们在数据库创建好,举个小例子理解下

class UserInfo(models.Model):
    name = models.CharField(max_length=32)
    password = models.CharField(max_length=64)
    age = models.IntegerField()
    #size = models.IntegerField(default=2)  默认值为2
    #size = models.IntegerField(null=True,blank=True) 默认值为空

相当于以下的SQL命令
create table app_userinfo(
    name varchar(32)
    password varcher(64)
    age int
)

一些常用的ORM对应模块参数可以看这篇文章:

http://t.csdn.cn/P8CoMicon-default.png?t=N658http://t.csdn.cn/P8CoM

 设计好之后输入创建数据库迁移的命令

python manage.py startapp student

此命令用于创建数据库迁移文件。当您更改了Django项目中的模型定义时,需要使用此命令来生成新的数据库迁移文件

将创建好的数据库迁移的文件更改应用到数据库中,输入命令

python manage.py migrate student 

 用于将数据库迁移应用到数据库中。当您对Django项目中的模型进行了更改后,需要使用此命令将这些更改应用到数据库中,以便在运行应用程序时能够正确地读取和写入数据。

打开数据库查看一下(表和参数都已经创建成功了):

 

8.在APP应用中创建静态文件和模板文件

静态文件static中创建js、css、img、pluging文件便于我们创建前端文件直接调用

模板文件templates创建html文件

9.创建学生列表进行展示

首先,在urls.py 创建访问访问路径

from django.contrib import admin

from django.urls import path

from student import views

urlpatterns = [

    path("admin/", admin.site.urls),

    path("user/list/",views.info_add ),

]

访问user/list,去找到views.info_add函数

然后,在views.py中创建info_add函数,使返回学生列表的所有数据,并以info_list.html进行返回展示

from django.shortcuts import render

from student.models import UserInfo,Department

# Create your views here.

def info_list(request):

    data_list = Userinfo.object.all()

    return render(request,"info_list.html",{"data_list":data_list})

最后在templates中创建info_list.html的文件

 启动项目命令

python manage.py runserver

访问连接-显示全部的内容,之后再给页面添加增删改查的内容和一些css样式就能给页面进行丰富起来。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mongodb集群工作原理学习

mongodb集群 MongoDB集群有好几种方式:,主从模式,副本集模式和分片的模式 其中主从模式基本不再使用,大多是后面两种 副本集模式 副本集模式主要是用于实现服务的高可用性,类型Redis的哨兵模式. 它主要是的特点: 创建集群后会有主节点(primary)和从节点(secondary). 但从节点…

1765_Perl实现fileread功能

全部学习汇总: GreyZhang/perl_basic: some perl basic learning notes. (github.com) fileread是MATLAB中的一个函数,可以实现对一个文本文件的全文读取。读取后的内容返回给一个字符串量。在Python中也有类似的功能,不过MATLAB中的这个更能…

快速创建ES集群

win10 中docker 设置 快速创建集群 访问 官网 elasticsearch/docs/reference/setup/install/docker at main elastic/elasticsearch GitHub 负责上面2个文件,并修改,修改如下 .env文件 # Password for the elastic user (at least 6 characters) …

【私有云】网络虚拟化

前言 大家好,我是秋意零。 之前一直对 OpenStack 网络很陌生与神奇啊,不知道它是如何实现的,网络结构是怎样的。不过,今天介绍的是网络虚拟化,它在 OpenStack 中及云计算中是非常重要的概念,是理解 OpenS…

springboot整合websocket遇到的小问题

今天尝试了通过springboot整合websocket来初步学习使用websocket,然后发现启动的时候报错了,发这篇文章分享一下。 springboot整合websocket的步骤很简单: 第一步:创建一个springboot项目,在这里命名为websocket 在I…

day16 移除元素

题目描述 解题思路: 1.快慢指针,移除数组元素只能是下标操作;fast往前,不等于value的时候,赋给slow; 2.slow;返回的长度直接返回slow; int removeElement(int* nums, int numsSize, …

Rethinking the Role of Pre-ranking in Large-scale E-Commerce Searching system

来源: KDD’2023Taobao Search 文章目录 ASHASMOL训练样本训练目标蒸馏精排 总结 反思粗排在大规模电商搜索系统中的角色。 由于巨大的数据量以及对系统实时反馈的要求,一个典型的工业排序系统通常由这些模块组成:召回(matching&…

VTR编译问题

机器环境 vmware 16.0; ubuntu22.04.02; 问题描述 一、在build过程中会出现一些警告,但没有停止; 二、访问 **raw.githubsercontent.com/…/…**相关网站被拒绝,如下图: 之前在 /etc/hosts 仅仅是添加了raw.github…

JS数组解构赋值变量存在依赖关系

题目随便起的, 在刷力扣 41.缺失的第一个正数 这个题的时候,出现了解构赋值的问题, 对于[a,b] [1,2]和[b,a][2,1]按理说都是行的通的,和位置没有关系,本质上都是进行交换 可是当我在题目中 使用[nums[nums[i]-1], nu…

SpringMVC的高频面试题

2023最新版(持续更新) 一、SpringMVC的高频面试题1. SpringMVC的执行流程2. SpringMVC常见的注解有哪些? 一、SpringMVC的高频面试题 1. SpringMVC的执行流程 前置知识 视图阶段(JSP): 涉及到的重要组件:…

KubeSphere 社区双周报 | KubeSphere 多项更新 | 2023.06.23-07.06

KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书、新增的讲师证书以及两周内提交过 commit 的贡献者,并对近期重要的 PR 进行解析,同时还包含了线上/线下活动和布道推广等一系列社区动态。 本次双周报涵盖时间为:2023.06.23-2023.…

管道设计专业版:Pipedata-Pro Crack

Pipedata-Pro 提高了管道设计的效率并减轻了查找管道信息的负担。它可以直观、轻松地检索最新的管道和设计数据。尺寸和重量单位可以设置为公制或美制单位。 Pipedata-Pro 于 1996 年由 Zeataline Projects 推出,现已遍布全球,Pipedata-Pro 管道表的映射…

怎么判断两个文档节点时候相同?判断两个DOM节点时候相等、相同的4种方法

方法1: document.querySelector(html) document.querySelector(html) //true 方法2:compareDocumentPosition document.querySelector(html).compareDocumentPosition(document.querySelector(html)) //0 返回0就代表相同 方法3:isEqualNode …

编译运行ContactDiscoveryService-Icelake

下载 git clone https://codeup.aliyun.com/6306306f95064d67d44656e5/lxr1907/ContactDiscoveryService-Icelake.git或github地址 git clone https://github.com/signalapp/ContactDiscoveryService-Icelake按照Readme安装 Building git submodule init git submodule update …

每次装完 homebrew,ohmyzsh 就会报错:Insecure completion-dependent directories detected:

参考:https://zhuanlan.zhihu.com/p/313037188 这是因为在big sur安装homebrew后,会在/usr/local/share/生成一个zsh文件夹,里面包含了 因此,zsh文件默认设置的权限是775,也就是group user有writer的权利,zsh认为这是…

python读写excel利器:xlwings从入门到精通

python读写excel利器:xlwings 从入门到精通 目录 安装和使用 基础操作 操作工作簿操作工作表读取单元格写入(单元格赋值)range的操作(range常用的api) 写入一行或一列Excel数据(函数式)使用range(\A1\).api.AddComment(\comments…

本质矩阵(Essential Matrix)E进行分解的过程

分解本质矩阵的过程遵循以下步骤: 使用奇异值分解(SVD)计算本质矩阵E的分解。SVD分解是一种将矩阵分解为三个矩阵的乘积的方法,它的形式为 E UΣV^T,其中U和V是正交矩阵,Σ是对角矩阵。此步骤的结果存储在…

Edge浏览器无法展示Stable Diffusion Control Net插件

Edge浏览器无法展示Stable Diffusion Control Net插件 最近在学习Stable Diffusion,需要使用到Control Net插件,结果通过各种方式安装成功插件后,浏览器页面没有展示ControlNet相关页面,最终换到Chorme浏览器后正常,猜…

【Python】绘图_pandas(1)

# -*- coding: utf-8 -*- #汉字处理 import matplotlib.pyplot as plt import numpy as np from numpy.random import randn import pandas as pd #import DataFrame from matplotlib.font_manager import FontPropertiesfont FontProperties(fnamer"c:\windows\fonts\si…

基于51单片机的电子密码锁设计

功能:本实例是基于51单片机的电子密码锁,主要硬件由51单片机最小系统,LCD1602液晶屏电路,继电器控制电路,AT24C02存储电路,LED指示灯电路,矩阵按键电路构成。 1.系统采用LCD1602液晶屏作为显示屏…