建设b2b网站需要多少钱?/清远头条新闻
环境安装:
由于我的C的Anaconda 是安装在C盘的,但是没内存了,所有我将环境转在e盘,下面的命令是创建环境到指定目录中.
conda create --prefix=E:\envs\dj42 python=3.9
进入环境中:
conda activate E:\envs\dj42
pip install django==4.2 -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip show django
查看安装情况:
查看安装版本情况:
pip freeze
创建项目:
命令行创建:
django-admin startproject HelloDjango
项目结构:
专业版创建:
项目结构:
-
manage.py: - 是Django⽤于管理本项⽬的命令⾏⼯具,之后进⾏站点运⾏,数据库⾃动⽣成等都是通过本⽂件完成。HelloDjango/ init .py: - 告诉python该⽬录是⼀个python包,暂⽆内容,后期⼀些⼯具的初始化可能会⽤到HelloDjango/settings.py:· Django项⽬的配置⽂件,默认状态其中定义了本项⽬引⽤的组件,项⽬名,数据库,静态资源等。HelloDjango/urls.py: - 维护项⽬的URL路由映射,即定义当客户端访问时由哪个模块进⾏响应。HelloDjango/wsgi.py: - 全称为Python Web Server Gateway Interface,即Python服务器⽹关接⼝,是Python应⽤与Web服务器之间的接⼝,⽤于Django项⽬在服务器上的部署和上线,⼀般不需要修改。HelloDjango/asgi.py: - 定义ASGI的接⼝信息,和WSGI类似,在3.0以后新增ASGI, 相⽐WSGI, ASGI实现了异步处理, ⽤于启动异步通信服务,⽐如:实现在线聊天等异步通信功能。(类似Tornado异步框架)
Django组件:
- 基本设置文件/路由系统
- M(模型层)V(模板层)T(视图层)
- cookies和session
- 分页及发送邮件
- 后果管理系统
基本操作:
配置文件:
项目配置文件讲解:
setting.py
from pathlib import Path# 项目根目录
# Path(__file__) 就是当前文件的绝对路径
BASE_DIR = Path(__file__).resolve().parent.parent# 项目的密钥
# 用于加密处理 在flask中需要自己写
SECRET_KEY = 'django-insecure-@o$)(@-s)t(jenz*5wbs^7-tohe)(d=equv7k3t4at6&2p9v_3'# 是否调试模式
# True: 表示调试模式,自动重启,一般用于开发过程中
# False: 表示非调试模式,一般用于上线部署
DEBUG = True
# 被允许的域名或IP
# * : 表示通配符,匹配所有的IP,表示可以被其他任何电脑来访问我(局域网)
# 上线后可以指定其他哪些服务器来访问我
ALLOWED_HOSTS = ['*']# 定义应用
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',# 定义自己的应用'user', # 'user.apps.UserConfig','App',
]# 中间件
MIDDLEWARE = ['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware',
]# 根路由
ROOT_URLCONF = 'DjangoPro2.urls'# 模板
TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [],'APP_DIRS': True, #每一个app都可以设置一个templates文件夹'OPTIONS': {'context_processors': ['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],},},
]
# 其实创建django项目的时候,会自动创建一个templates文件夹,但是后期开发中我们一般不使用全局的templates文件夹,一般使用每一个应用下的templates文件夹# wsgi目录
WSGI_APPLICATION = 'DjangoPro2.wsgi.application'# Database 数据库
DATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3',}
}# 密码验证
AUTH_PASSWORD_VALIDATORS = [{'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',},{'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',},{'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',},{'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',},
]# 国际化 地区语言配置等
LANGUAGE_CODE = 'zh-hans' # en-us英语,zh-hans中文
TIME_ZONE = 'UTC'
USE_I18N = True
USE_TZ = True# 静态文件 (CSS, JavaScript, Images)
STATIC_URL = 'static/'# 默认的主键字段类型
# Default primary key field type
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
项目启动:
python manage.py runserver [ip:port]
可以直接进⾏服务运⾏ 默认执⾏起来的端⼝是8000
也可以⾃⼰指定ip和端⼝:
1.监听机器所有可⽤ ip (电脑可能有多个内⽹ip或多个外⽹ip):
python manage.py runserver 0.0.0.0:8000
2.同时在settings.py中将
ALLOWED_HOSTS=['*']
3.在其他局域⽹电脑上可以通过在浏览器输⼊ Django项⽬所在电脑的 IP:8000 来访问
python manage.py runserver
该端口:
python manage.py runserver 8000
python manage.py runserver 0.0.0.0:8001
数据迁移:
迁移的概念: 就是将模型映射到数据库的过程
⽣成迁移⽂件: python manage.py makemigrations
执⾏迁移: python manage.py migrate
不需要初始化迁移⽂件夹,每个应⽤默认有迁移⽂件夹migrations。
创建应用:
python manage.py startapp App(就是名字)
创建名称为App的应⽤
使⽤应⽤前需要将应⽤配置到项⽬中,在settings.py中将应⽤加⼊到INSTALLED_APPS选项中,进去应用的注册。
应⽤⽬录介绍:init .py:
其中暂⽆内容,使得app成为⼀个包
admin.py:
管理站点模型的声明⽂件,默认为空
apps.py:
应⽤信息定义⽂件,在其中⽣成了AppConfig,该类⽤于定义应⽤名等数据
models.py:
添加模型层数据类⽂件
views.py:
定义URL相应函数,视图函数
migrations包:
⾃动⽣成,⽣成迁移⽂件的
视图函数:
这里想特别说明一点,就是路由和映射函数。
urls.py文件
from django.contrib import admin
from django.urls import path, include
from user.views import *
urlpatterns = [path("admin/", admin.site.urls),# 路由url# 直接访问视图函数,没有使用子路由path('index/', index),path('index2/', index2),# 使用子路由# # 一个应用对应一个子路由# path('user/', include('user.urls')),## path('admin/', admin.site.urls),
]
user应用下的views.py
from django.shortcuts import render# Create your views here.from django.shortcuts import render
from django.http import HttpResponsefrom user.models import *# 视图函数Views
def index(request):# 需要有一个形参pass# 返回相应responsereturn HttpResponse('Hello Django!')# 渲染模板render,渲染html# return render(request, 'index.html')# 视图函数2
def index2(request):return HttpResponse('Index2')# # 视图函数3
# def get_users(request):
# # 模型操作;获取所有user
# users = UserModel.objects.all()
# return render(request, 'users.html', {'users': users})
#
框架流程:
路由:
我将自带的文档翻译了一下:
urlpatters列表将URL路由到视图。有关更多信息,请参阅:
https://docs.djangoproject.com/en/4.2/topics/http/urls/
- 函数视图
添加导入:从my_app导入视图
将URL添加到URL模式:路径(“”,views.home,name=‘home’) - -基于类的视图
添加导入:从other_app.views导入主页
将URL添加到URL模式:path(‘’,Home.as_view(),name=‘Home’) - 包括另一个URLconf
导入include()函数:从django.url导入include,路径
将URL添加到urlpatters:path(‘blog/’,include(‘blog.urls’))
项目工程下的urls.py
from django.contrib import admin
from django.urls import path, include
from user.views import *
urlpatterns = [path("admin/", admin.site.urls),# 使用子路由# 一个应用对应一个子路由path('user/', include('user.urls')),path('admin/', admin.site.urls),
]
子路由就是使用应用中的urls.py,当然了我们需要自己创建.
我们发现这里特别想flask中的blueprint就是蓝图函数.
模板:
模板实际上就是我们⽤HTML写好的⻚⾯
创建模板⽂件夹templates, 在模板⽂件夹中创建模板⽂件
在views中去加载渲染模板, 使⽤render函数: return render(request,'index.html')
模型:
在models.py 中引⼊models
from django.db import models
创建⾃⼰的模型类,但切记要继承⾃ models.Model!
模型Model <==> 表结构
类属性 <==> 表字段
对象 <==> 表的一行记录
class UserModel(models.Model):name = models.CharField(max_length=30, unique=True) # 对应的SQL: name varchar(30) unique 唯一age = models.IntegerField(default=18) # 对应的SQL: age int defalut 18sex = models.CharField(max_length=20) # 对应的SQL: sex varchar(20)is_deleted = models.BooleanField(default=False)def __str__(self): # 重新定义魔法方法 打印对象会重构# 后台管理会显示 return f'{self.name} - {self.age}'
CharField
一定要写字符长度限制!
数据迁移:
数据迁移:models表结构一旦改变就需要重新数据迁移。(同步改变)
迁移的概念: 就是将模型映射到数据库的过程。
# 生成迁移文件: python manage.py makemigrations
# 执行迁移: python manage.py migrate
创建模拟数据:
from django.shortcuts import render
# Create your views here.
from django.shortcuts import render
from django.http import HttpResponse
from user.models import * # 导入所有模型# 视图函数Views
def index(request):# 需要有一个形参pass# 渲染模板render,渲染htmlreturn render(request, 'index.html')# 视图函数2
def index2(request):return HttpResponse('Index2')# 视图函数3
def get_users(request):# 模型操作;获取所有userusers = UserModel.objects.all()return render(request, 'users.html', {'users': users})
user/templates/users.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>所有用户</title>
</head>
<body><h2>所有用户</h2><hr><ul>{% for user in users %}<li>{{ user.name }},{{ user.age }}</li>{% endfor %}</ul></body>
</html>
后台管理:
在admin.py中将model加⼊后台管理:
from django.contrib import admin
from user.models import *admin.site.register(UserModel)
后台管理系统的使用:
- 在这里注册对应的模型
- 需要创建超级管理员的账号和密码: python manage.py createsuperuser
- 根路由urls.py中添加: path(‘admin/’, admin.site.urls),
- 访问后台管理系统:http://127.0.0.1:8000/admin/
在admin.py中将model加⼊后台管理:admin.site.register(Grade)
创建超级⽤户:python manage.py createsuperuser
访问admin后台:http://127.0.0.1:8000/admin/
总结:
本教程旨在帮助初学者快速入门Django框架,并掌握其基本操作和核心概念。我们详细介绍了以下内容:
- 环境安装:我们指导了读者如何安装Django及其相关依赖,确保他们可以顺利开始使用该框架。
- 创建项目两种方式:我们介绍了通过Django命令行工具和手动创建项目两种方式,帮助读者理解项目结构和配置文件的作用。
- 项目结构和常用基本操作:我们解释了Django项目的目录结构,并介绍了常用的基本操作,如创建应用、管理静态文件和数据库设置等。
- 项目启动和数据迁移:我们演示了如何启动Django开发服务器,并详细说明了数据迁移的过程,以确保数据库与模型的同步。
- 创建应用、视图函数和模板:我们引导读者学习如何创建Django应用程序,并编写视图函数和模板,实现页面的渲染和交互。
- 路由和模型:我们讲解了Django的URL路由系统,帮助读者理解如何将URL映射到相应的视图函数。此外,我们还介绍了模型的概念和使用方法,以便读者能够操作数据库。
- 后台管理系统:最后,我们介绍了Django提供的强大的后台管理系统,使读者能够轻松管理数据模型和内容。
686)]
[外链图片转存中…(img-S4zpRO9v-1708504693686)]
总结:
本教程旨在帮助初学者快速入门Django框架,并掌握其基本操作和核心概念。我们详细介绍了以下内容:
- 环境安装:我们指导了读者如何安装Django及其相关依赖,确保他们可以顺利开始使用该框架。
- 创建项目两种方式:我们介绍了通过Django命令行工具和手动创建项目两种方式,帮助读者理解项目结构和配置文件的作用。
- 项目结构和常用基本操作:我们解释了Django项目的目录结构,并介绍了常用的基本操作,如创建应用、管理静态文件和数据库设置等。
- 项目启动和数据迁移:我们演示了如何启动Django开发服务器,并详细说明了数据迁移的过程,以确保数据库与模型的同步。
- 创建应用、视图函数和模板:我们引导读者学习如何创建Django应用程序,并编写视图函数和模板,实现页面的渲染和交互。
- 路由和模型:我们讲解了Django的URL路由系统,帮助读者理解如何将URL映射到相应的视图函数。此外,我们还介绍了模型的概念和使用方法,以便读者能够操作数据库。
- 后台管理系统:最后,我们介绍了Django提供的强大的后台管理系统,使读者能够轻松管理数据模型和内容。
通过本教程,读者将掌握Django框架的基础知识,并能够使用它构建简单而强大的Web应用程序。无论是初学者还是有一定经验的开发者,都能从本教程中获得实用的技能和知识,为他们的项目开发之旅奠定坚实的基础。开始你的Django之旅吧!
相关文章:

Django入门指南:从环境搭建到模型管理系统的完整教程
环境安装: 由于我的C的Anaconda 是安装在C盘的,但是没内存了,所有我将环境转在e盘,下面的命令是创建环境到指定目录中. conda create --prefixE:\envs\dj42 python3.9进入环境中: conda activate E:\envs\dj42…...

Elasticsearch从入门到精通-01认识Elasticsearch
Elasticsearch从入门到精通-01认识Elasticsearch 👏作者简介:大家好,我是程序员行走的鱼 🍂博主从本篇正式开始ES学习,希望小伙伴可以一起探讨 📖 本篇主要介绍和大家一块简单认识下ES并了解ES中的主要角色…...

Element UI的安装和使用
Element UI 是一个基于 Vue 2.0 的桌面端组件库,广泛用于快速构建高质量的用户界面。以下是 Element UI 组件的安装和使用的详细步骤: 1. 安装 Element UI 在开始之前,确保你已经设置好了 Vue 项目环境。如果你还没有Vue项目,可…...

c++的指针完整教程
概述:C的指针是一种特殊的变量,它存储的是另一个变量的内存地址。指针的使用可以让我们更高效地操作内存,实现动态内存分配等功能。 声明指针变量 要声明一个指针变量,需要在变量类型前加上星号(*)。例如…...

WordPress前端如何使用跟后台一样的Dashicons图标字体?
很多站长都喜欢在站点菜单或其他地方添加一些图标字体,常用的就是添加Font Awesome 图标和阿里巴巴矢量库图标iconfont。其实我们使用的 WordPress 本身就有一套管理员使用的官方图标字体 Dashicons,登录我们站点后台就能看到这些图标字体。那么有没有可…...

redisson实现延迟队列
1.pom引入redisson <dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.20.1</version></dependency>整合springboot配置,这个可以参考之前整合redisson的文章,…...

【教程】N2N V3内网穿透、异地组网,包括Win/Linux/Android,包括不同内网实现adb远程连接
目录 一、背景 二、Linux 配置 并运行 N2N - Supernode (必选) 三、Linux -- 配置 并运行 N2N - 边缘节点配置 Edge(可选步骤) 四、Windows -- 配置 并运行 N2N - 边缘节点配置 Edge (可选步骤) (一)配置 TAP 虚拟网卡 (二)配置 N...

JavaAPI常用类01
目录 概述 Object类 Object类_toString() 代码展示 重写toString()方法前后输出 Object类_equals() 代码展示 重写equals()方法前后输出对比 Arrays类 equals()方法 Binary Search(二分查找) copyOf()方法 sort()方法 了解sort()方法 进阶…...

在 where子句中使用子查询(二)
目录 ANY ANY :功能上与 IN 是没有任何区别的 >ANY :比子查询返回的最小值要大 ALL >AL :比子查询返回的最大值要大 EXISTS() 判断 NOT EXISTS Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209…...

TongWEB(东方通),部署WEB前后端项目步骤
我的系统: 银河麒麟桌面系统V10(SP1)(兆芯) 环境需要搭建好,什么redis,数据库等 1.准备项目前端war包 (我后端项目本就是war部署,jar转war自行百度一下吧) 进入前端打包好的dist文件夹,创建一个文件夹 WEB-INF ,再在 WEB-INF 里创建一个 web.xml 文件,文件内容: <web-…...

Vue中如何使用dayjs
Day.js中文网Day.js是一个极简的JavaScript库,可以为现代浏览器解析、验证、操作和显示日期和时间。https://dayjs.fenxianglu.cn/ 单位不区别大小写,支持复数和缩写形式 单位缩写描述 date D日期 [1,31]dayd星期 [0,6](星期日0,…...

数据库-MySQL
建立索引 mysql 添加索引的三种方法 - krt-wanyi - 博客园 (cnblogs.com) 跨库联表查询 MySQL不同数据库不同表连表查询(跨库连表查询)-CSDN博客 关于微服务跨数据库联合查询的一些解决思路_微服务跨库联表查询-CSDN博客 同一个连接不同数据库前缀 …...

C语言每日一题(61)盛最多水的容器
题目链接 力扣 11 盛最多水的容器 题目描述 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水…...

uni-app 经验分享,从入门到离职(四)——页面栈以及页面跳转的 API(开发经验总结)
文章目录 📋前言⏬关于专栏 🎯什么是页面栈🧩页面跳转方法📌 uni.navigateTo(OBJECT)📌 uni.redirectTo(OBJECT)📌 uni.reLaunch(OBJECT)📌 uni.switchTab(OBJECT)📌 uni.navigateBa…...

Go Module常用命令
Go Module常用命令TOC Go Module常用命令 go mod init #初始化go.mod go mod tidy #更新依赖文件 go mod download #下载依赖文件 go mod vendor #将依赖转移至本地的vendor文件 go mod edit #手…...

ubuntu压缩和解压
-c 创建 -x 解压 -v 显示过程 -f 文件名 xz格式 tar -tf arm-linux-gnueabi-5.4.0.tar.xz 查看压缩包的内容 tar -xf arm-linux-gnueabi-5.4.0.tar.xz -C / 解压 gz格式 t…...

华为HCIP Datacom H12-831 卷24
多选题 1、如图所示,某园区部署OSPF实现网络互通,其中Area1部署为NSSA区域。某工程师为了实现R1访问R4的环回口地址,在R4的OSPF进程中引入直连路由。以下关于该场景的描述,错误的有哪些项? A、在R4引入直连路由后,R1通过转换后的…...

react + Typescript 中 react有多少内置的类型 分别是什么
react Typescript 中 react有多少内置的类型 分别是什么 React 和 TypeScript 结合使用时,React 提供了一系列的内置类型(也称为类型定义或类型别名)来帮助你在 TypeScript 中编写类型安全的代码。这些类型定义涵盖了 React 的各个方面&…...

harbor(docker仓库)仓库部署 - 高可用
harbor(docker仓库)仓库部署 - 高可用 1. harbor高可用1.1 方案说明1. 双主复制2. 多harbor实例共享后端存储 1.2 部署高可用(多harbor实例共享后端存储)1. 服务器划分2. 安装harbor(先部署一套Harbor,用于…...

题目 1262: 邮局选址问题
题目描述: 在一个按照东西和南北方向划分成规整街区的城市里,n个居民点散乱地分布在不同的街区中。用x 坐标表示东西向,用y坐标表示南北向。各居民点的位置可以由坐标(x,y)表示。街区中任意2 点(x1,y1)和(x2,y2)之间的距离可以用数值|x1-x2||y1-y2|度量…...

内核内存回收关键隐藏变量之page引用计数
在分析内核内存回收源码时,page引用计数并不显眼,但是page引用计数对page的内存回收至关重要。本文基于linux-4.18.0-240版本内核源码,总结下文件页page的引用计数的相关细节。首先是get_page()和put_page()函数,分别令page引用计…...

数据结构---链表的基本操作
头插法遍历链表尾插法头删法尾删法按位置插入数据按位置删除数据直接插入排序 链表翻转快慢指针 linklist.c #include <stdio.h> #include <stdlib.h> #include "./linklist.h"linklist* create_linklist(void) {linklist* head (linklist*)malloc(siz…...

异步框架Celery在Django中的运用
参考博客:https://www.cnblogs.com/pyedu/p/12461819.html 参考视频:01 celery的工作机制_哔哩哔哩_bilibili 定义:简单灵活、处理大量消息的分布式系统,专注于实时处理异步队列,支持任务调度 主要架构: …...

YOLOv5代码解读[02] models/yolov5l.yaml文件解析
文章目录 YOLOv5代码解读[02] models/yolov5l.yaml文件解析yolov5l.yaml文件检测头1--->耦合头检测头2--->解耦头检测头3--->ASFF检测头Model类解析parse_model函数 YOLOv5代码解读[02] models/yolov5l.yaml文件解析 yolov5l.yaml文件 # YOLOv5 🚀 by Ult…...

智能搬运机器人|海格里斯将如何持续推进工业和物流的智能化升级与发展?
存取、搬运、分拣是物流行业中的通用功能,但具体到每个行业又十分不同,例如:新能源电池领域,它所搬运的东西是电池,50KG~200KG;快递行业领域,所要处理的物料是那种扁平件和信封等等,…...

linux之前后端项目部署与发布
目录 前言 简介 一、安装Nginx 二、后端部署 2.1多个tomcat负载均衡 2.2 负载均衡 2.3 后端项目部署 三、前端部署 1.解压前端 2.Nginx配置文件修改 3.IP域名映射 4.重启Nginx服务 前言 上篇博主已经讲解过了单机项目的部署linux之JAVA环境配置JDK&Tomcat&a…...

Python 高级语法:一切皆对象
1 “一切皆对象”是一种核心设计哲学 在编程领域,特别是面向对象编程(OOP)中,“一切皆对象”是一种核心设计哲学。这种哲学主张,无论是数据、函数、还是更复杂的结构,都可以被视为对象,并赋予…...

python jupyter notebook打开页面方便使用
如果没安装jupyter, 请安装: pip install jupyter notebook 运行jupyter notebook jupyter-notebook...

音视频开发之旅(69)-SD图生图
目录 1. 效果展示 2. ControlNet介绍 3. 图生图流程浅析 4. SDWebui图生图代码流程 5. 参考资料 一、效果展示 图生图的应用场景非常多,比较典型的应用场景有风格转化(真人与二次元)、线稿上色、换装和对图片进行扩图等,下面…...

數據集成平台:datax將hive數據步到mysql(全部列和指定列)
數據集成平台:datax將hive數據步到mysql(全部列和指定列) 1.py腳本 傳入參數: target_database:數據庫 target_table:表 target_columns:列 target_positions:hive列的下標&#x…...