一、Django项目创建

news2025/1/19 14:26:44

一. Python项目虚拟环境创建

在项目开发过程中会下载很多第三方库,有时不同项目对同一个库的依赖版本不同,如果所有项目都使用同一个python环境就会起冲突不便于管理。因此,实际开发中会为每一个项目都单独创建一个python的虚拟环境。这里的虚拟环境本质上是对系统python环境的一个拷贝,它依赖系统环境又和系统环境隔离。

流行的python虚拟环境管理工具有很多最常用的是virtualenv。

virtualenv

安装

pip install virtualenv

创建虚拟环境

cd到你想要创建虚拟环境的目录,然后运行下面的命令:

virtualenv env # env是虚拟环境的名字,可以自定义

运行完这个命令之后,会在当前目录下创建一个名为env的文件夹,这个文件中的内容就是环境的文件。

如果系统上有多个python环境可以通过-p参数指定不同python版本来创建对应的虚拟环境

virtualenv -p C:\Python39\python.exe env  # 指定对应版本的python创建虚拟环境

使用虚拟环境

  • Mac,linux
  • 运行 source venv/bin/activate
  • windows
  • 运行venv\scripts\activate

进入虚拟环境后会在命令行的用户名前加上(虚拟环境名)

注意:进入虚拟环境后只在当前终端中有效,新开启的终端需要再次重新进入。如果关闭了终端会退出虚拟环境,再次进入的时候,需要重新进入虚拟环境。

退出虚拟环境

  1. 如果是切换,直接进入其他虚拟环境即可

  2. 主动退出当前虚拟环境

运行命令

bash deactivate

pycharm

也可以直接使用pycharm工具创建虚拟环境,只需要在创建项目的时候勾选创建虚拟环境即可。

按照默认配置创建好项目后会在当前项目根目录下创建虚拟环境env

二. 下载django

下载django之前先去官方文档看下最新的版本号是多少,找个目前长期稳定版

我这里指定的是3.2.15这个版本号

pip install django==3.2.15 

如果下载特别慢的话可以指定一下国内源

注意:有可能国内源没有这个版本。

pip install django==3.2.15 pip -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

三、创建django项目和应用

安装django后,会安装一个django-admin程序,用来创建和管理django项目。

要创建一个django项目可以运行如下命令:

django-admin startproject <project_name> [project_path]

其中startproject是创建子命令,<project_name>是项目名必须提供,project_path是创建项目的路径,如果省略会把项目创建在当前目录下。

例如运行命令:

django-admin startproject study_django

这会在当前目录创建名为study_django的目录,目录中的内容如下:

study_django/                               # 项目根目录,目录名可以随意更换
    manage.py                               # 管理django项目命令行工具
    study_django/                           # 项目目录,python包,
        __init__.py
        settings.py                         # 项目配置文件
        urls.py                             # 项目根路由文件
        asgi.py                             # 兼容asgi协议的web服务器入口文件
        wsgi.py                             # 兼容wsgi协议的web服务器入口文件

但是这样项目根目录文件名和项目目录名相同,有时候我们不需要创建最外层的目录,只把项目生成在当前目录下可以运行如下命令:

django-admin startproject study_project .  # 路径参数是. 代表当前目录

运行项目

在项目根目录下运行如下命令:

python manage.py runserver ip:端口

命令不带ip和端口参数,服务将默认运行在127.0.0.1:8000

运行成功后在浏览器访问http://127.0.0.1:8000/将会看到欢迎页面。

注意:这只是一个Django 自带的用于开发的简易服务器,它为开发而设计,不要应用在生产环境中。

修改时区和语言

上一步中的欢迎页面看起来是英文的,django框架做了国际化,我们只需要在settings.py中修改如下配置

LANGUAGE_CODE = 'zh-hans'       # 语言配置为中文

TIME_ZONE = 'Asia/Shanghai'     # 时区配置为亚洲上海

即可配置好中文和正确的时区。再次访问http://127.0.0.1:8000/,欢迎页面如下:

设置django服务

 

 

右上角点击运行,运行成功。 

 

 

创建django应用

什么是应用

在Django中有项目和应用的概念。

每一个应用都是一个 Python 包,并且遵循着相同的约定和结构。

Django 自带一个工具,可以帮你生成应用的基础目录结构,这样你就能专心写代码,而不是创建目录了。

项目和应用有什么区别?应用是一个专门做某件事的网络应用程序——比如博客系统,或者公共记录的数据库,或者小型的投票程序。项目则是一个网站使用的配置和应用的集合。项目可以包含很多个应用。应用可以被很多个项目使用。

也可以简单理解为一个项目即是一个网站,一个应用就是这个网站的某一个功能板块。

例如:豆瓣网是一个项目,其中读书,电影,音乐...等是一个个的应用。

创建应用

在项目根目录下运行如下命令:

python manage.py startapp crm

其中startapp是子命令,crm是应用名。

这将会在项目根目录下创建一个 crm 目录,它的目录结构大致如下:

crm/
    __init__.py
    admin.py              # django后台站点配置入口
    apps.py               # 应用信息配置入口
    migrations/           # 数据库迁移历史信息目录
        __init__.py
    models.py             # 数据模型模块
    tests.py              # 单元测试
    views.py              # 应用视图模块

这个目录结构包括了crm应用的全部内容。

第一个视图

打开crm/views.py,编写如下代码:

from django.http import HttpResponse


def index(request):
    return HttpResponse("我是首页面")

这是 Django 中最简单的视图。如果想要看见效果,需要将一个url映射到它。

添加路由

crm目录下创建子路由模块urls.py,编写如下代码:

from django.urls import path
from . import views

urlpatterns = [
    path('index/', views.index)
]

再到主路由模块study_django/urls.py中添加子路由如下:

from django.urls import path, include

urlpatterns = [
    ...
    path('crm/', include('crm.urls'))  # 添加一条include
]

做完上面的操作之后,重新运行服务,就可以在浏览器中通过urlhttp://127.0.0.1:8000/crm/index/访问在上每一步创建的视图。如果一切正常你会看到如下页面:

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

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

相关文章

多线程~POSIX信号量实现生产者消费者模型,PV操作

目录 1.信号量的概念 2.sem_t信号量的操作函数 &#xff08;1&#xff09;.原理 &#xff08;2&#xff09;.sem_t函数的使用 &#xff08;3&#xff09;.基于信号量和环形队列的生产者消费者模型 1&#xff09;.大致实现思路 Task.hpp circular_queue.hpp circular_c…

基于java SSH框架的简单医疗管理系统源码+数据库,医疗管理系统基于springmvc+spring+hibernate

医疗管理系统 基于java SSH框架的简单医疗管理系统 环境说明 1、语言及开发环境&#xff1a; 语言实现说明JAVA后端用springmvcspringhibernate&#xff0c;前端使用htmlajax开发环境使用eclipse&#xff0c;maven管理。 数据库使用mysql&#xff1b; 完整代码下载地址&…

3D设计软件SolidWorks特征研究—— 3种放样方式 | 附视频教程

SolidWorks 是世界上第一个基于Windows开发的三维CAD系统&#xff0c;是可实现设计、模拟、成本估算、可制造性检查、CAM、可持续设计和数据管理等多种功能的三维设计软件&#xff0c;包含适用于钣金、焊件、曲面、模具、产品配置、DFM和CAM的专业工具&#xff0c;同时支持ECAD…

跑步耳机入耳式好还是半入耳式好、跑步用的耳机推荐

运动耳机一定是要跟佩戴舒适性、音质、性能关联在一起的&#xff0c;尤其是专业的运动耳机&#xff0c;还要具有久戴舒适运动时还不掉的特点&#xff0c;这个是我认为无论任何价价位的运动耳机都必须首要具备的条件&#xff0c;戴久了不舒服或者总掉&#xff0c;音质再好估计都…

带你了解防火墙

目录 1、什么是防火墙&#xff1f; 2、iptables 3、firewalld 如何实现端口转发&#xff1f; 1、什么是防火墙&#xff1f; 防火墙&#xff1a;防火墙是位于内部网和外部网之间的屏障&#xff0c;它按照系统管理员预先定义好的规则来控制数据包的进出。防火墙又可以分为硬件…

Error: Can‘t find Python executable “python“, you can set the PYTHON env var

亲测可用&#xff0c;若有疑问请私信 此问题&#xff0c;自己分析了好久才找到问题。其实有两种解决方案&#xff0c;我这里举例了一个&#xff0c;另一种环境变量配置也是可以的。希望能帮到大家。 问题描述&#xff1a; 在执行npm install 过程中出现 V未安装 解决方案&…

Python学习笔记-PyQt6工具栏

工具栏工具栏可以有多个&#xff0c;而且可以设置不同的位置参数。4.1工具栏位置参数QtCore.Qt.ToolBarArea.LeftToolBarAreaQtCore.Qt.ToolBarArea.RightToolBarAreaQtCore.Qt.ToolBarArea.TopToolBarAreaQtCore.Qt.ToolBarArea.BottomToolBarAreaQtCore.Qt.ToolBarArea.AllTo…

库的制作相关信息

库 通过把函数进行打包&#xff0c;然后形成相应的库&#xff0c;供其他的主函数使用。 静态库 以.a进行结尾&#xff0c;把库的东西&#xff08;头与库文件进行打包到之中&#xff09;打包到可执行程序之中。 静态库不是使用相对的位置信息&#xff0c;直接的信息。 bank…

如何通过Java导出带格式的 Excel 数据到 Word 表格

在Word中制作报表时&#xff0c;我们经常需要将Excel中的数据复制粘贴到Word中&#xff0c;这样则可以直接在Word文档中查看数据而无需打开另一个Excel文件。但是如果表格比较长&#xff0c;内容就会存在一定程度的丢失&#xff0c;无法完整显示数据。并且当工作量到达一定程度…

.net6 Web Api使用JWT-从后端到前端全部过程

jwt是做验证的必经之路&#xff0c;至于原理&#xff0c;就不在叙述了&#xff0c;可以参考官网 jwt官网介绍 JSON Web Tokens - jwt.io 原理介绍 JSON Web Token 入门教程 - 阮一峰的网络日志 看完之后&#xff0c;结合这个图&#xff0c;就明白了。 本案例使用vs2022&…

从技术专家到总经理,在不确定中探索和成长

你好&#xff0c;我是石东海。 前段时间我应邀跟一些企业做过一些交流&#xff0c;探讨在这个数字化时代&#xff0c;怎么去解决技术团队所面临的一些共性问题&#xff0c;包括技术思维转变和管理思维转变方面所经历的挑战。期间谈到了一些我个人的经历&#xff0c;以及这两年…

哈希表(一)—— 闭散列 / 开放地址法的模拟实现

哈希表的基本思路是通过某种方式将某个值映射到对应的位置&#xff0c;这里的采取的方式是除留余数法&#xff0c;即将原本的值取模以后再存入到数组的对应下标&#xff0c;即便存入的值是一个字符串&#xff0c;也可以根据字符串哈希算法将字符串转换成对应的ASCII码值&#x…

这家十年磨剑的企业级存储厂商,为什么将分布式块存储也开源了?

只要提到企业级存储&#xff0c;任何成功的厂商无不以十年为单位的积累&#xff0c;才能实现真正的创新。当然&#xff0c;作为存储领域相对更为复杂的分布式块存储&#xff0c;存储创新公司一般都不太愿意碰它。原因很简单&#xff0c;在技术自研的道路上&#xff0c;更需要坐…

Nginx之限流

文章目录Nginx如何限流配置基本的限流处理突发无延迟的排队高级配置示例location包含多limit_req指令配置相关功能发送到客户端的错误代码指定location拒绝所有请求总结流量限制(rate-limiting)&#xff0c;是 Nginx 中一个非常实用&#xff0c;却经常被错误理解和错误配置的功…

JavaScript 数据处理 · 基本统计(文末附视频)

第 5 节 基本数据处理 基本统计 学习了如何对 JavaScript 中的数组数据进行操作之后&#xff0c;我们就要回到刚开始选择购买这本小册的目的了&#xff1a;使用 JavaScript 开发灵活的数据应用。既然说是数据应用&#xff0c;那么便离不开统计计算&#xff0c;而数组就可以说…

Android 设备自动重启分析[低内存]——MTK平台 debuglogger

大家有没有遇到和我一样的问题&#xff0c;android设备(我这里android 平板)用着用着突然就黑屏自动重启了&#xff0c;重启后一切正常&#xff0c;这个问题还是概率性的&#xff0c;复现都不好复现... 本人公司是做平板定制的&#xff0c;主要针对平板进行上网限制&#xff0c…

C语言进阶——字符函数

目录 一.前言 二.strlen 1.函数介绍 2.三种模拟实现 三.长度不受限制函数 1.strcpy 模拟实现 2.strcat 模拟实现 3.strcmp 模拟实现 四.长度受限制函数 1.strncpy 模拟实现 2.strncat 模拟实现 3.strncmp 模拟实现 五.字符串查找 1.strstr 模拟实现 2.st…

手把手教你快速搞定4个职场写作场景

“ 【写作能力提升】系列文章&#xff1a; 为什么建议你一定要学会写作? 手把手教你快速搞定 4 个职场写作场景 5 种搭建⽂章架构的⽅法”免费赠送! ”一、前言 Hello&#xff0c;我是小木箱&#xff0c;今天主要分享的内容是: 写作小白需要避免的五个写作误区和灵魂五问。 二…

好家伙谷歌翻译又不能用了(有效解决方法)

今天打开idea想翻译单词发现谷歌翻译又又又挂了。为什么挂掉&#xff0c;可能是那个ip节点太多人用了&#xff0c;我也不懂我就是一个小白。不bb了说一下解决方法。一、手动Ping可以连接的ip这里我使用的是&#xff1a;https://ping.chinaz.com然后我们输入&#xff1a; transl…

YoloV8简单使用

我们坐在阳光下&#xff0c;我们转眼间长大&#xff0c;Yolo系列都到V8了&#xff0c;来看看怎么个事。目标检测不能没有Yolo&#xff0c;就像西方不能没有耶路撒冷。这个万能的目标检测框架圈粉无数&#xff0c;经典的三段式改进也是改造出很多论文&#xff0c;可惜我念书时的…