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

PythonWeb Django PostgreSQL创建Web项目(三)

了解Django框架下如何配置数据库链接与创建模型和应用

使用Django创建web项目,首先需要了解生成的项目文件结构,以及对应文件功能用途方可开始web项目页面创建,下方先介绍文件功能,之后再配置数据库连接以及管理创建模型与应用,最后创建超级管理员启动django自带的管理站点界面。

1. 项目文件目录与功能介绍

从(一)中找到初始化生成的项目文件如下:

test004 //主文件夹
--- test004  --- __init__.py  //一个空文件,标识该目录为一个Python包--- settings.py  //项目的配置文件--- urls.py  //路由文件 项目的URL声明--- asgi.py  //作为你的项目的运行在 ASGI 兼容的 Web 服务器上的入口--- wsgi.py  //作为你的项目的运行在 WSGI 兼容的Web服务器上的入口
--- manage.py // 进行交互的命令行工具

2.将已创建本网站记入配置

我们的应用名称为test004,具体添加如下:
在这里插入图片描述

3.配置文件(数据库)

打开test004/setting.py,这里配置关乎Django项目设置的Python模块,默认该配置文件使用SQLite作为默认数据库,,当然我们在(二)安装了PostgreSQL作为本测试项目的数据库,需要在setting.py中对数据库进行配置,但是连接数据库只有这些配置是没有用的,还需要对应连接的python模块psycopg2依赖包,安装命令如下:

pip install psycopg2

执行结果如下:
安装连接pg数据库的依赖包对应配置setting.py初始DATABASES 如下:

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

对setting.py修改部分内容如下:

DATABASES = {'default': {'ENGINE': 'django.db.backends.postgresql_psycopg2','NAME''test004','USER':'postgres','PASSWORD':'123456','HOST':'localhost','PORT':'5432',}
}

下面我们尝试一下是否可以连接到数据库,我们执行一下命令:

python manage.py migrate

如果结果如下:
在这里插入图片描述
你会神奇的发现数据库test004中多了很多的表,这些表是之前自带框架中主要是认证授权系统中使用到的表,截图如下:
在这里插入图片描述
当你学会创建模型时可以执行该命令,自动替你创建数据库中对应的表,同时也表示数据库配置已经完成。

4. 创建应用与模型

使用Django框架,在创建模型时,要求创建一个app应用,我们使用一下命令创建一个DoctorInfo的app:

django-admin startapp DoctorInfo

执行后生成的目录结构如下:

test004
|-- test004
|-- manage.py
...
|-- DoctorInfo
|   |-- migrations
|   |-- __init__.py
|   |-- admin.py
|   |-- apps.py
|   |-- models.py
|   |-- tests.py
|   |-- views.py

我们修改DoctorInfo/models.py代码如下:

from django.db import models
import uuid
# Create your models here.class Doctor(models.Model):did = models.UUIDField(primary_key=True,default=uuid.uuid4,editable=False)realname = models.CharField(max_length=20)professional = models.CharField(max_length=20)
class DocGoodAtInfo(models.Model):doctor = models.ForeignKey(Doctor,on_delete=models.CASCADE) #外键goodat = models.CharField(max_length=200)update = models.DateTimeField('date published') #日期字段

将该应用添加到主站点中,操作如下:

INSTALLED_APPS = ['DoctorInfo.apps.DoctorinfoConfig', #自行创建应用'django.contrib.admin', #管理员站点'django.contrib.auth', #认证授权系统'django.contrib.contenttypes',  #内容类型框架'django.contrib.sessions', #会话框架'django.contrib.messages', #消息框架'django.contrib.staticfiles', #管理静态文件的框架'test004',
]

执行以下命令,可以在对应数据库中创建表:

python manage.py makemigrations DoctorInfo

执行结果如下:
在这里插入图片描述

当我们执行命令遇到错误 ValueError: source code string cannot contain null bytes,这属于编码问题,找到改动的文件,修改对应编码为UTF-8
在这里插入图片描述

5.创建超级管理员密码打开管理站点界面

记住执行命令前先进入对应目录,这里不再详细说明,我们先创建一个管理员账户密码,执行命令如下:

python manage.py createsuperuser

在这里插入图片描述
管理员账户密码创建完成,让我们启动服务器打开管理站点python manage.py runserver,启动完成后,在浏览器中访问http://127.0.0.1:8000/admin,可以看到管理站点登陆页面入口,输入我们刚刚创建的管理员账号密码
在这里插入图片描述
进入之后我们可以看到,截图如下:
在这里插入图片描述
而且通过点击Users的Change,我们可以编辑刚刚创建的即当前登录的账号,截图如下:
在这里插入图片描述

6.将新创建应用的模型类加入管理站点中

我们需要编辑应用中的DoctorInfo/admin.py

from django.contrib import adminfrom .models import Doctor
from .models import DocGoodAtInfo
# Register your models here.admin.site.register(Doctor)
admin.site.register(DocGoodAtInfo)

我们刷新管理站点界面后就会发现多了两项管理内容:
在这里插入图片描述
我们从这里可以直接编辑数据库数据

7. 开始创建可用的视图页面第一步创建应用自己的urls.py

Django默认不会给应用自动创建urls.py,因此为了以便概述划分为应用程序的项目的整个 url 结构,最好创建自己的DoctorInfo/urls.py,然后在主站点test004下的urls.py中引入,创建如下:

from django.urls import path
from . import views
urlpatterns = [path('', views.index, name='index'),
]

下一步在根URLconf文件中指定我们创建的DoctorInfo.urls模块。在test004/urls.py文件的urlpatterns插入相关部分,如下

from django.contrib import admin
from django.urls import include,pathurlpatterns = [path('DoctorInfo/',include('DoctorInfo.urls')),path('admin/', admin.site.urls),
]

8.创建模板目录以及html文件和对应的view修改

首先我们能在DoctorInfo目录下创建一个templates目录,Django将在这个目录中查找模板文件,编写对应的DoctorInfo/views.py

from django.shortcuts import renderfrom .models import Doctor# Create your views here.def index(request):last_doctot_list = Doctor.objects.order_by('-crtime')[:5]context = {'last_doctot_list':last_doctot_list}return render(request,'DoctorInfo/index.html',context)

创建DoctorInfo/templates/index.html,完整代码如下:

<!DOCTYPE html>
<head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><meta name="description" content="测试版应用首页"><title>小应用首页</title><style></style>
</head>
<body><div class="top"></div><div class="main">{% if last_doctot_list %}<ul>{% for doctor in last_doctot_list %}<li><a href="/DoctorInfo/{{ doctor.did }}">{{ doctor.realname }} - {{ doctor.professional }}</a></li>{% endfor %}</ul>{% else %}<p>No doctor are available</p>{% endif %}</div>
</body>
</html>

创建完成后,我们就开始测试吧启动server,显示如下:
在这里插入图片描述
因为我们并没有添加对应数据,表示一张空表

9. 下面我们使用pythonshell来创建一条数据

首先进入主站点根目录下,输入命令python manage.py shell,按照下方代码输入,这里直接使用截图显示:
在这里插入图片描述
然后我们再刷新页面看页面显示,截图如下:
在这里插入图片描述
从截图中我们看出,页面已经将刚加入数据库中的数据显示出来了

相关文章:

PythonWeb Django PostgreSQL创建Web项目(三)

了解Django框架下如何配置数据库链接与创建模型和应用 使用Django创建web项目&#xff0c;首先需要了解生成的项目文件结构&#xff0c;以及对应文件功能用途方可开始web项目页面创建&#xff0c;下方先介绍文件功能&#xff0c;之后再配置数据库连接以及管理创建模型与应用&a…...

【Visual Studio】git提交代码时使用GPG

前言 下载安装GPG的过程省略,直接开始进行配置 0.visual studio 版本说明 其余版本未测试,但是应该也是可以的 1 获取GPG的密钥ID 1.1 window下可以打开Kleopatra查看生成好的密钥的密钥ID 1.2 也可以从命令行中获取 gpg --list-keys 红框位置,后16位就是密钥ID 2 配置.git…...

【反序列化漏洞-02】PHP反序列化漏洞实验详解

为什么要序列化百度百科上关于序列化的定义是&#xff0c;将对象的状态信息转换为可以存储或传输的形式(字符串)的过程。在序列化期间&#xff0c;对象将其当前状态写入到临时或持久性存储区(非关系型键值对形式的数据库Redis&#xff0c;与数组类似)。以后&#xff0c;可以通过…...

Gateway网关的使用

Gateway服务网关Spring Cloud Gateway 是 Spring Cloud 的一个全新项目&#xff0c;该项目是基于 Spring 5.0&#xff0c;Spring Boot 2.0 和 Project Reactor 等响应式编程和事件流技术开发的网关&#xff0c;它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。1…...

【LeetCode】背包问题总结

文章目录一、背包能否装满&#xff1f;416. 分割等和子集1049. 最后一块石头的重量 II二、装满背包有几种方法&#xff1f;494. 目标和518.零钱兑换II377. 组合总和 Ⅳ70. 爬楼梯三、背包装满的最大价值474.一和零四、装满背包最小物品数322. 零钱兑换279.完全平方数一、背包能…...

Java的开发工具有哪些?这十款工具大厂都在用!

工欲善其事必先利其器&#xff0c;各位同学大家好&#xff0c;我是小源~本期文章&#xff0c;给大家推荐十款Java的开发工具。一、 文本编辑器主要推荐三款&#xff1a;notepad、editplus、sublime text。这三款编辑工具&#xff0c;在我们的开发工作中几乎是相差无几&#xff…...

web学习-Node.js入门学习

web学习-Node.js入门学习1.回顾与思考2. 初识Node.js2.1 Node.js的简介2.2Node.js的环境安装2.3. fs文件系统模块2.3.1 fs.readFile()2.3.2 fs.writeFile()2.3.3 练习-整理考试成绩2.3.4 fs模块-路径动态拼接的问题2.4 path路径模块2.5 http模块2.5.1 服务器相关的概念2.5.2 创…...

100 eeeee

全部 答对 答错 敏捷综合训练3 1.看板中的精益生产概念是如何减少工作在瓶颈时期的影响&#xff1f; A它不会减少瓶颈&#xff0c;因为瓶颈是任何生产系统不可避免的副产品 B通过运用 5Y 分析根本原因 C通过成为一个及时的进度系统 D通过每周完善活动 答错了 收藏 学员得…...

物盾安全汤晓冬:工业互联网企业如何应对高发的供应链安全风险?

编者按&#xff1a;物盾安全是一家专注于物联网安全的产品厂商&#xff0c;其核心产品“物安盾”在能源、制造、交通等多个领域落地&#xff0c;为这些行业企业提供覆盖物联网云、管、边、端的安全整体解决方案。“物安盾”集成了腾讯安全制品扫描&#xff08;BSCA&#xff09;…...

微纳制造技术——基础知识

1.什么是直接带隙半导体和间接带隙半导体 导带底和价带顶处以同一K值&#xff0c;称为直接带隙半导体 导带底和价带顶不处在同一K值&#xff0c;称为间接带隙半导体 2.扩散和漂移的公式 3.三五族半导体的性质 1.high mobility 2.wide bandgap 3.direct bandgap 4.三五族…...

Makefile的使用

Makefile的使用 自动化编译脚本&#xff0c;这个东西就是&#xff0c;进行简单的设置&#xff0c;然后实现原码编成为相应程序&#xff0c;简单化自己进行相关操作的过程。不需要一个个自己进行全部进行输入。而且还有许多的简化书写方法。 ​ 这个Makefile的本质为一种脚本语言…...

RealBasicVSR模型转成ONNX以及用c++推理

文章目录安装RealBasicVSR的环境1. 新建一个conda环境2. 安装pytorch(官网上选择合适的版本)版本太低会有问题3. 安装 mim 和 mmcv-full4. 安装 mmedit下载RealBasicVSR源码下载模型文件写一个模型转换的脚步测试生成的模型安装RealBasicVSR的环境 1. 新建一个conda环境 cond…...

C语言作用域(变量生存的空间)学习

C 作用域规则 任何一种编程中&#xff0c;作用域是程序中定义的变量所存在的区域&#xff0c;超过该区域变量就不能被访问。C 语言中有三个地方可以声明变量&#xff1a; 在函数或块内部的局部变量 在所有函数外部的全局变量 在形式参数的函数参数定义中 让我们来看看什么是局…...

Spark性能优化一 概念篇

&#xff08;一&#xff09;宽依赖和窄依赖 窄依赖(Narrow Dependency)&#xff1a;指父RDD的每个分区只被子RDD的一个分区所使用&#xff0c;例如map、filter等 这些算子一个RDD&#xff0c;对它的父RDD只有简单的一对一的关系&#xff0c;也就是说&#xff0c;RDD的每个part…...

[数据结构]:09-二分查找(顺序表指针实现形式)(C语言实现)

目录 前言 已完成内容 二分查找实现 01-开发环境 02-文件布局 03-代码 01-主函数 02-头文件 03-PSeqListFunction.cpp 04-SearchFunction.cpp 结语 前言 此专栏包含408考研数据结构全部内容&#xff0c;除其中使用到C引用外&#xff0c;全为C语言代码。使用C引用主要…...

3.基于Label studio的训练数据标注指南:文本分类任务

文本分类任务Label Studio使用指南 1.基于Label studio的训练数据标注指南&#xff1a;信息抽取&#xff08;实体关系抽取&#xff09;、文本分类等 2.基于Label studio的训练数据标注指南&#xff1a;&#xff08;智能文档&#xff09;文档抽取任务、PDF、表格、图片抽取标注等…...

Python进阶-----面向对象3.0(面对对象三大特征之---封装)

目录 前言&#xff1a; 什么是封装 Python私有化封装 习题 前言&#xff1a; 上一期是讲解Python中类的私有属性和方法&#xff0c;其实很好理解&#xff0c;我给一个类中的部分属性进行加密拒绝访问&#xff08;上一期链接Python进阶-----面向对象2.0&#…...

软考中级软件设计师备考建议

前言 首先我说一下个人对这个考试的一个感受看法&#xff0c;我觉得软件设计师考试并不难&#xff0c;主要是不要被内心的恐惧吓倒&#xff0c;考试中心态真的很重要&#xff01; 一、中级软件设计师科目包括&#xff1a; &#xff08;1&#xff09;计算机与软件工程知识&am…...

【机器学习】决策树(理论)

决策树&#xff08;理论&#xff09; 目录一、何为决策树1、决策树的组成2、决策树的构建二、熵1、熵的作用2、熵的定义3、熵的计算4、条件熵的引入5、条件熵的计算三、划分选择1、信息增益&#xff08; ID3 算法选用的评估标准&#xff09;2、信息增益率&#xff08; C4.5 算法…...

VSCode下载与安装使用教程【超详细讲解】

目录 一、VSCode介绍 二、官方下载地址 三、VSCode安装 1、点击我同意此协议&#xff0c;点击下一步&#xff1b; 2、点击浏览&#xff0c;选择安装路径&#xff0c;点击下一步&#xff1b; 3、添加到开始菜单&#xff0c;点击下一步&#xff1b; 4、根据需要勾选&#…...

2023年3月北京/上海/广州/深圳DAMA数据管理认证CDGA/CDGP

弘博创新是DAMA中国授权的数据治理人才培养基地&#xff0c;贴合市场需求定制教学体系&#xff0c;采用行业资深名师授课&#xff0c;理论与实践案例相结合&#xff0c;快速全面提升个人/企业数据治理专业知识与实践经验&#xff0c;通过考试还能获得数据专业领域证书。 DAMA认…...

进程和线程理论知识

1.进程和线程之间的联系。 进程是程序依次执行的过程&#xff0c;线程是比进程小的执行单位。 一个进程在其执行过程中可以创建多个线程。 多个线程共享进程的堆和方法区内存资源。 进程是OS进行资源分配的基本单位。 线程是OS进行调度的基本单位。 进程和线程是1&#xff1…...

华为OD机试用Python实现 -【广播服务器】

华为OD机试题 最近更新的博客华为 OD 机试 300 题大纲广播服务器题目输入输出示例一输入输出示例二输入输出Python代码代码编写思路最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题...

Solon2 的应用生命周期

Solon 框架的应用生命周期包括&#xff1a;一个初始化函数时机点 六个事件时机点 两个插件生命时机点 两个容器生命时机点&#xff08;v2.2.0 版本的状态&#xff09;&#xff1a; 提醒&#xff1a; 启动过程完成后&#xff0c;项目才能正常运行&#xff08;启动过程中&…...

学习笔记-架构的演进之服务容错策略设计模式-3月day02

文章目录前言断路器模式舱壁隔离模式重试模式总结附前言 容错设计模式&#xff0c;指的是“要实现某种容错策略&#xff0c;我们该如何去做”。微服务中常见的设计模式包括断路器模式、舱壁隔离模式和超时重试模式等&#xff0c;另外还有流量控制模式等。 断路器模式 断路器…...

【WEB前端进阶之路】 HTML 全路线学习知识点梳理(上)

前言 HTML 是一切Web开发的基础&#xff0c;本文专门为小白整理&#xff0c;针对前端零基础的朋友们&#xff0c;手把手教你学习HTML&#xff0c;让你轻松迈入WEB开发的行列。 首先&#xff0c;感谢 橙子_ 在HTML学习以及本文编写过程中对我的帮助。 文章目录前言一.HTML简介1.…...

mes系统核心业务流程及应用场景介绍

现在许多企业已经开始使用MES系统控制和管理工厂的生产过程&#xff0c;实时监控、诊断和控制生产过程&#xff0c;完成单元集成和系统优化。本文将为大家具体介绍一下MES系统的业务流程。 MES系统业务流程 1、计划调度MES系统承接了ERP订单&#xff0c;开始干预生产。该模块…...

应用统计部分常用公式总结

常见分布函数 常用公式 分位数&#xff1a;P{X>xα}α,P{X≤xα}1−αP\{X>x_\alpha\}\alpha, P\{X\le x_\alpha\}1-\alphaP{X>xα​}α,P{X≤xα​}1−αE(Xi)E(X)E(X‾)μE(X_i)E(X)E(\overline X)\muE(Xi​)E(X)E(X)μE(X2)E2(X)D(X)μ2σ2E(X^2)E^2(X)D(X)\mu^2…...

阿赵的MaxScript学习笔记分享八《文件操作》

大家好&#xff0c;我是阿赵。继续分享MaxScript学习笔记第八篇 。这一篇主要讲文件操作&#xff0c;包括文件的I/O和导入导出。 1、获得3DsMax指定的一些目录路径 如果在电脑上安装了3DsMax软件&#xff0c;那么在文档里面会有一个3dsMax的文件夹&#xff0c;里面有一些3dsMa…...

将项目封装进docker进行迁移或使用

首先要理解docker的基本使用&#xff0c;本文不做过多阐述&#xff0c;博主也对docker没有了解透彻。 这里列一下docker的基本命令&#xff1a; docker info # 查看docker信息 docker -v # 查看docker版本 docker images # 查看docker所有的镜…...

wordpress七牛sdk/广州引流推广公司

最近在对接支付宝支付的开发&#xff0c;需要取到支付的RSA公钥和私钥。于是把公钥和私钥加到resources文件夹里。但是不知道怎么读到这两个文件&#xff0c;也就是不知道路径怎么写。于是网上搜索了下如何获取工作路径&#xff0c;System.getProperty("user.dir"); …...

网站顶部轮播怎么做/百度竞价推广开户内容

题目 请你来实现一个 myAtoi(string s) 函数&#xff0c;使其能将字符串转换成一个 32 位有符号整数&#xff08;类似 C/C 中的 atoi 函数&#xff09;。 函数 myAtoi(string s) 的算法如下&#xff1a; 1.读入字符串并丢弃无用的前导空格 2.检查下一个字符&#xff08;假设还…...

百度站长反馈/白云区最新疫情

简介: 使用队列&#xff0c;按层处理&#xff0c;每层的数量是2的层高次方。先去除队列首&#xff0c;然后生成左右节点&#xff0c;链接出队节点的左右节点后push自己入队。 代码&#xff1a; function TreeNode(val) {this.val val;this.left this.right null; }var bu…...

商务网站建设考试/sem运营

基于MATLAB联合站原油加热模糊控制(程序)(课题申报表,任务书,开题报告,中期检查表,外文翻译,论文24500字,程序,答辩PPT)摘 要我国普遍采用长距离管道输送的方式输送原油&#xff0c;由于我国原油大部分为“三高”原油&#xff0c;即具有含腊高&#xff0c;凝固点高和粘度高的特…...

政法门户网站建设情况/国内免费域名注册网站

MQ项目IBM MQ 安装 在144.131.254.177 &#xff08;A机&#xff09;和144.131.254.178(B机) 两台机器上安装MQ Cluster环境.配置共享磁盘 /mqha 安装前检查环境 df –h 保证有足够的空间 2. 创建mqm用户和组 Groupadd –g 1000 mqm Useradd –u 1000 –g mqm –d /home/mqm –m…...

制作网站公司 可以要求后续修改吗/在哪里推广自己的产品

原标题&#xff1a;生命起源之谜&#xff1a;RNA世界假说将迎来终结&#xff1f;○ 流行的理论认为&#xff0c;生命起源于物质丰富的化学汤&#xff0c;而 RNA 是化学汤中最初的自我复制单元。但是&#xff0c;多肽和RNA混合起来或许会更高效。 | 图片来源&#xff1a;Novikov…...