Django网站搭建流程

使用Django搭建网站是一个系统的过程,涉及从环境搭建到部署上线的多个步骤。以下是详细的流程:
1. 环境搭建
(1)安装Python
Django是基于Python的Web框架,因此需要先安装Python。建议安装Python 3.8及以上版本。
下载地址:Python官网。
(2)安装Django
使用pip安装Django:

pip install django


检查Django是否安装成功:

django-admin --version


2. 创建Django项目
(1)创建项目目录
打开终端或命令行工具,运行以下命令创建Django项目:

django-admin startproject myproject


其中myproject是项目的名称,你可以根据需要修改。
(2)进入项目目录
进入项目目录:

cd myproject


3. 创建Django应用
(1)创建应用
Django项目由多个应用组成,一个应用通常对应网站的一个功能模块。运行以下命令创建应用:

python manage.py startapp myapp


其中myapp是应用的名称。
(2)注册应用
将应用添加到项目的settings.py文件中:

Python复制INSTALLED_APPS = [...'myapp',
]


4. 定义模型(Model)
(1)编辑models.py
在myapp/models.py文件中定义数据模型。例如,定义一个简单的用户模型:

from django.db import modelsclass User(models.Model):username = models.CharField(max_length=100)email = models.EmailField()password = models.CharField(max_length=100)def __str__(self):return self.username


(2)生成数据库迁移文件
运行以下命令生成迁移文件:

python manage.py makemigrations


(3)应用迁移
运行以下命令将模型应用到数据库:

python manage.py migrate


5. 创建视图(View)
(1)编辑views.py
在myapp/views.py文件中定义视图逻辑。例如:

from django.shortcuts import render
from .models import Userdef home(request):users = User.objects.all()return render(request, "home.html", {"users": users})


6. 配置URL路由
(1)编辑urls.py
在myapp/urls.py文件中定义应用的路由:

from django.urls import path
from . import viewsurlpatterns = [path("", views.home, name="home"),
]
在项目的urls.py文件中包含应用的路由:
Python复制from django.contrib import admin
from django.urls import path, includeurlpatterns = [path("admin/", admin.site.urls),path("", include("myapp.urls")),
]


7. 创建模板(Template)
(1)创建模板文件
在myapp/templates目录下创建HTML模板文件(如home.html):

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Home</title>
</head>
<body><h1>User List</h1><ul>{% for user in users %}<li>{{ user.username }} - {{ user.email }}</li>{% endfor %}</ul>
</body>
</html>


 

8. 运行开发服务器
在开发阶段,Django自带一个轻量级的开发服务器,方便快速测试和调试。
(1)启动开发服务器
在终端中运行以下命令:

python manage.py runserver


默认情况下,服务器会在http://127.0.0.1:8000运行。
(2)访问网站
打开浏览器,访问http://127.0.0.1:8000,如果一切正常,你将看到网站的首页。
9. 数据库管理
Django自带一个强大的管理后台,方便对数据库进行操作。
(1)创建管理员用户
运行以下命令创建一个管理员用户:

python manage.py createsuperuser


按照提示输入用户名、邮箱和密码。
(2)登录管理后台
访问http://127.0.0.1:8000/admin,使用刚才创建的管理员账号登录。
(3)注册模型到后台
为了让模型出现在管理后台,需要在myapp/admin.py文件中注册它们。例如:

from django.contrib import admin
from .models import Useradmin.site.register(User)


这样,User模型就会出现在管理后台中,你可以通过后台添加、编辑或删除数据。
10. 静态文件和媒体文件
Django将静态文件(如CSS、JavaScript、图片)和媒体文件(用户上传的文件)分开管理。
(1)静态文件
将静态文件放在应用的static目录下,例如myapp/static/css/style.css。
在HTML模板中使用{% static %}模板标签引用静态文件:

<link rel="stylesheet" href="{% static 'css/style.css' %}">


(2)媒体文件
如果你的模型中包含文件字段(如ImageField或FileField),需要配置媒体文件的存储路径。
在settings.py中添加以下配置:

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
在项目的urls.py中添加媒体文件的URL配置(仅在开发环境中使用):
Python复制from django.conf import settings
from django.conf.urls.static import staticurlpatterns = [path("admin/", admin.site.urls),path("", include("myapp.urls")),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)


用户上传的文件将存储在MEDIA_ROOT指定的目录中,并可以通过MEDIA_URL访问。
总结
第8步:启动Django开发服务器,用于本地开发和测试。
第9步:利用Django的管理后台管理数据库,方便数据的增删改查。
第10步:配置静态文件和媒体文件,确保网站的资源可以正确加载和访问。
这三步是开发过程中的重要环节,帮助你快速测试功能并管理网站的资源。

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

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

相关文章

【深入理解FFMPEG】命令行阅读笔记

这里写自定义目录标题 第三章 FFmpeg工具使用基础3.1 ffmpeg常用命令3.1.13.1.3 转码流程 3.2 ffprobe 常用命令3.2.1 ffprobe常用参数3.2.2 ffprobe 使用示例 3.3 ffplay常用命令3.3.1 ffplay常用参数3.3.2 ffplay高级参数3.3.4 ffplay快捷键 第4章 封装与解封装4.1 视频文件转…

ORACLE-主备备-Failover

背景 随着业务的不断增涨,至使现有的单节点DG环境的连接已经无法满足当前业务需求,并且随着业务的重要性,同时也要求数据库的高可用性,减少数据库故障对业务的影响。于是规划迁移方案。 迁移方案如下: 因PRIMARY库本地磁盘空间已达到80%决定弃用,搭建高可用2个节点的RAC做…

OpenEuler学习笔记(十):用OpenEuler搭建web服务器

以下是在OpenEuler系统上搭建Web服务器的详细步骤&#xff0c;这里以常见的Nginx为例。 1. 系统更新 在进行任何操作之前&#xff0c;最好先更新系统的软件包&#xff0c;确保系统是最新的状态。 sudo dnf update -y2. 安装Nginx 可以使用OpenEuler的软件包管理器dnf来安装…

【C语言系列】深入理解指针(4)

深入理解指针&#xff08;4&#xff09; 一、回调函数是什么&#xff1f;二、qsort使用举例2.1使用qsort函数排序整型数据2.2使用qsort排序结构数据 三、qsort函数的模拟实现四、总结 一、回调函数是什么&#xff1f; 回调函数就是一个通过函数指针调用的函数。 如果你把函数的…

vim的多文件操作

[rootxxx ~]# vim aa.txt bb.txt cc.txt #多文件操作 next #下一个文件 prev #上一个文件 first #第一个文件 last #最后一个文件 快捷键: ctrlshift^ #当前和上个之间切换 说明&#xff1a;快捷键ctrlshift^&#xff0c…

解决CentOS9系统下Zabbix 7.2图形中文字符乱码问题

操作系统&#xff1a;CentOS 9 Zabbix版本&#xff1a;Zabbix7.2 问题描述&#xff1a;主机图形中文字符乱码 解决方案&#xff1a; # 安装字体配置和中文语言包 sudo yum install -y fontconfig langpacks-zh_CN.noarch # 检查是否已有中文字体&#xff1a; fc-list :lan…

[SUCTF 2018]MultiSQL1

进去题目页面如下 发现可能注入点只有登录和注册,那么我们先注册一个用户&#xff0c;发现跳转到了/user/user.php&#xff0c; 查看用户信息,发现有传参/user/user.php?id1 用?id1 and 11,和?id1 and 12,判断为数字型注入 原本以为是简单的数字型注入&#xff0c;看到大…

计算机视觉-卷积

卷积-图像去噪 一、图像 二进制 灰度 彩色 1.1二进制图像 0 1 一个点可以用一个bit&#xff08;0/1&#xff09;来表示 1.2灰度图像 0-255 一个点可以用一个byte来表示 1.3彩色图像 RGB 表达一个彩色图像先说它的分辨率p/w&#xff08;宽&#xff09;和q/h&#xff08;高…

mybatis(78/134)

前天学了很多&#xff0c;关于java的反射机制&#xff0c;其实跳过了new对象&#xff0c;然后底层生成了字节码&#xff0c;创建了对应的编码。手搓了一遍源码&#xff0c;还是比较复杂的。 <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE …

1.23 补题 寒假训练营

E 一起走很长的路&#xff01; 输入描述 第一行输入两个整数 n,q&#xff08;1≤n,q≤210^5&#xff09;&#xff0c;代表多米诺骨牌的个数和询问次数。 第二行输入 n 个整数 a1,a2,…,an​&#xff08;1≤ai≤10^9&#xff09;&#xff0c;表示多米诺骨牌的重量。 此后输入…

【中间件快速入门】什么是Redis

现在后端开发会用到各种中间件&#xff0c;一不留神项目可能在哪天就要用到一个我们之前可能听过但是从来没接触过的中间件&#xff0c;这个时候对于开发人员来说&#xff0c;如果你不知道这个中间件的设计逻辑和使用方法&#xff0c;那在后面的开发和维护工作中可能就会比较吃…

金晟新能源由盈转亏:毛利率下滑产能利用率不佳,关联交易持续增加

《港湾商业观察》黄懿 近期&#xff0c;广东金晟新能源股份有限公司&#xff08;下称“金晟新能源”&#xff09;递交了招股书&#xff0c;拟冲刺港交所IPO&#xff0c;中金公司、招银国际为联席保荐人。 金晟新能源处于电池回收的新兴大势行业&#xff0c;但是&#xff0c;受…

RTMP|RTSP播放器只解码视频关键帧功能探讨

技术背景 我们在做RTMP|RTSP直播播放器的时候&#xff0c;遇到过这样的技术诉求&#xff0c;在一些特定的应用场景中&#xff0c;可能只需要关键帧的信息&#xff0c;例如视频内容分析系统&#xff0c;可能只对关键帧进行分析&#xff0c;以提取特征、检测对象或场景变化。鉴于…

2K高刷电竞显示器怎么选?

2K高刷电竞显示器怎么选&#xff1f;哪个价格适合你&#xff1f;哪个配置适合你呢&#xff1f; 1.HKC G27H2Pro - 2K高刷电竞显示器怎么选 外观设计 - HKC G27H2Pro 2K高刷电竞显示器 电竞风拉满&#xff1a;作为猎鹰系列的一员&#xff0c;背部 “鹰翼图腾” 切割线搭配炎红…

STM32-时钟树

STM32-时钟树 时钟 时钟

基于SpringBoot+WebSocket的前后端连接,并接入文心一言大模型API

前言&#xff1a; 本片博客只讲述了操作的大致流程&#xff0c;具体实现步骤并不标准&#xff0c;请以参考为准。 本文前提&#xff1a;熟悉使用webSocket 如果大家还不了解什么是WebSocket&#xff0c;可以参考我的这篇博客&#xff1a; rWebSocket 详解&#xff1a;全双工…

StarRocks BE源码编译、CLion高亮跳转方法

阅读SR BE源码时&#xff0c;很多类的引用位置爆红找不到&#xff0c;或无法跳转过去&#xff0c;而自己的Linux机器往往缺乏各种C依赖库&#xff0c;配置安装比较麻烦&#xff0c;因此总体的思路是通过CLion远程连接SR社区已经安装完各种依赖库的Docker容器&#xff0c;进行编…

STM32 按键密码系统的实现

本次基于STM32F407开发板&#xff0c;来实现密码系统&#xff0c;输入四位密码&#xff0c;密码正确时LED1亮&#xff0c;密码错误时四个LED灯双闪。 LED双闪代码 简单的逻辑&#xff0c;让四个LED灯先亮然后再延时一会LED灯灭&#xff0c;循环4此实现双闪的效果。 按键密码的…

linux常用加固方式

目录 一.系统加固 二.ssh加固 三.换个隐蔽的端口 四.防火墙配置 五.用户权限管理 六.暴力破解防护 七.病毒防护 八.磁盘加密 九.双因素认证2FA 十.日志监控 十一.精简服务 一.系统加固 第一步&#xff1a;打好系统补丁 sudo apt update && sudo apt upgra…

hadoop==docker desktop搭建hadoop

hdfs map readuce yarn https://medium.com/guillermovc/setting-up-hadoop-with-docker-and-using-mapreduce-framework-c1cd125d4f7b 清理资源 docker-compose down docker system prune -f