Python Django项目和应用的创建详解


Posted in Python onNovember 27, 2021

创建一个Django项目

创建一个名为project的Django项目,在cmd命令行输入

django-admin startproject project

输入命令完会生成一个名叫project的项目包,包内一个manage.py文件和项目名同名的project包。

  • manage.py文件: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。

project包里面我们可以查看到的目录结构:

  • project/__init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
  • project/settings.py: 该 Django 项目的设置/配置。
  • project/urls.py: 该 Django 项目的 URL 声明; 这是项目的根路由。
  • project/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目

settings.py项目配置文件

创建完项目后,在项目同名的project目录内有一个settings.py 文件,这个配置文件用于配置和管理Django项目的运维信息。

settings.py配置文件中的所有配置项都是大写的,项目创建时,就初始化了一些默认配置,这些默认配置承载着最基础的项目信息。

其中常用的配置项有:

  • DATABASES :数据库配置
  • TEMPLATES:配置HTML页面的模板地址templates
  • STATICFILES_DIRS :配置静态文件
  • MIDDLEWARE :配置中间件
  • DEBUG:默认为True,项目上线时改为False
  • ALLOWED_HOSTS:限定请求中的host值

urls.py路由系统

Django的路由系统作用是使views中处理数据的函数与请求的url建立映射关系。

请求到来之后,根据urls.py里的关系条目,查找到与请求对应的处理方法,从而返回数据给客户端http页面。

Python Django项目和应用的创建详解

在Django1.x版本中url映射一般是一条正则表达式,“^” 字符串的开始,“$“ 字符串的结束。项条目从头开始进行逐一对比,一旦遇到匹配项,立即执行该条目映射的视图函数或二级路由,其后的条目将不再继续匹配。因此,url路由的编写顺序至关重要!

在Django1.x中,一个url映射条目至少有两个参数,一个是正则规则,一个是视图函数,代码如下:

from django.conf.urls import url  # url()方法导入方式
url(r'^test/$',views.test)    # django2中使用re_path替换url

在Django2.x版本中路由映射使用 path() 或 re_path() 方法,path()没有了正则的那些规则,直接匹配字符串,re_patah() 用法和url()一样,path()的运用如下:

from django.urls import path,re_path    # path()方法的导入方式
path('test/',views.test)        # 不需要使用 ^ $ 等正则规则

注意:本课程中使用re_path()的正则匹配,可自行选择path()或re_path()。

当有多个应用(App)时,我们会在每个App里,各自创建一个urls.py路由模块,然后从根路由出发,将app所属的url请求,全部转发到相应的urls.py模块中。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注三水点靠木的更多内容!

Python 相关文章推荐
python使用paramiko实现远程拷贝文件的方法
Apr 18 Python
Python合并多个Excel数据的方法
Jul 16 Python
python实现在图片上画特定大小角度矩形框
Oct 24 Python
在python中bool函数的取值方法
Nov 01 Python
flask框架路由常用定义方式总结
Jul 23 Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
Oct 12 Python
python 将dicom图片转换成jpg图片的实例
Jan 13 Python
pytorch实现mnist数据集的图像可视化及保存
Jan 14 Python
解决Python命令行下退格,删除,方向键乱码(亲测有效)
Jan 16 Python
Python列表倒序输出及其效率详解
Mar 04 Python
Python定义一个函数的方法
Jun 15 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
Nov 28 Python
python playwright 自动等待和断言详解
Nov 27 #Python
Python实现制作销售数据可视化看板详解
Python 如何利用ffmpeg 处理视频素材
实操Python爬取觅知网素材图片示例
Python函数中apply、map、applymap的区别
Nov 27 #Python
python字符串拼接.join()和拆分.split()详解
Nov 23 #Python
Python装饰器的练习题
Nov 23 #Python
You might like
IIS安装Apache伪静态插件的具体操作图文
2013/07/01 PHP
php实现监控varnish缓存服务器的状态
2014/12/30 PHP
利用PHP fsockopen 模拟POST/GET传送数据的方法
2015/09/22 PHP
php简单实现数组分页的方法
2016/04/30 PHP
让ThinkPHP的模板引擎达到最佳效率的方法详解
2017/03/14 PHP
PHP日志LOG类定义与用法示例
2018/09/06 PHP
js类 from qq
2006/11/13 Javascript
ExtJS 2.0实用简明教程 之获得ExtJS
2009/04/29 Javascript
jQuery 使用手册(四)
2009/09/23 Javascript
深入理解JavaScript 闭包究竟是什么
2013/04/12 Javascript
判断JS对象是否拥有某种属性的两种方式
2013/12/02 Javascript
javascript模拟post提交隐藏地址栏的参数
2014/09/03 Javascript
javascript白色简洁计算器
2015/05/04 Javascript
js识别uc浏览器的代码
2015/11/06 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
Javascript+CSS3实现进度条效果
2016/10/28 Javascript
浅谈js对象属性 通过点(.) 和方括号([]) 的不同之处
2016/10/29 Javascript
jQuery插件HighCharts绘制简单2D折线图效果示例【附demo源码】
2017/03/21 jQuery
element-ui 时间选择器限制范围的实现(随动)
2019/01/09 Javascript
微信小程序实现上传多个文件 超过10个
2020/03/30 Javascript
JS实现单张或多张图片持续无缝滚动的示例代码
2020/05/10 Javascript
JavaScript canvas实现跟随鼠标移动小球
2021/02/09 Javascript
Python代码实现KNN算法
2017/12/20 Python
python3 判断列表是一个空列表的方法
2018/05/04 Python
Python发送邮件功能示例【使用QQ邮箱】
2018/12/04 Python
对python中的try、except、finally 执行顺序详解
2019/02/18 Python
python实现在多维数组中挑选符合条件的全部元素
2019/11/26 Python
关于pytorch处理类别不平衡的问题
2019/12/31 Python
HTML5轻松实现全屏视频背景的示例
2018/04/23 HTML / CSS
德国箱包网上商店:koffer24.de
2016/07/27 全球购物
新西兰廉价汽车租赁:Snap Rentals
2018/09/14 全球购物
幸福家庭标语
2014/06/27 职场文书
2014年幼儿园小班工作总结
2014/12/04 职场文书
村干部任职承诺书
2015/01/21 职场文书
投标单位介绍信
2015/05/05 职场文书
毕业赠语大全
2015/06/23 职场文书