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基类函数的重载与调用实例分析
Jan 12 Python
在Python中处理字符串之isdecimal()方法的使用
May 20 Python
Python实现批量修改文件名实例
Jul 08 Python
Python3实现的字典遍历操作详解
Apr 18 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
Aug 15 Python
对Django中的权限和分组管理实例讲解
Aug 16 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
Sep 25 Python
python图像处理模块Pillow的学习详解
Oct 09 Python
Python FtpLib模块应用操作详解
Dec 12 Python
python实现交并比IOU教程
Apr 16 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
May 12 Python
python源码剖析之PyObject详解
May 18 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
基于mysql的论坛(5)
2006/10/09 PHP
php中设置多级目录session的问题
2011/08/08 PHP
PHP中spl_autoload_register()和__autoload()区别分析
2014/05/10 PHP
CI框架Session.php源码分析
2014/11/03 PHP
PHP实现扎金花游戏之大小比赛的方法
2015/03/10 PHP
PHP工厂模式简单实现方法示例
2018/05/23 PHP
js几个不错的函数 $$()
2006/10/09 Javascript
自动完成JS类(纯JS, Ajax模式)
2009/03/12 Javascript
不安全的常用的js写法
2009/09/15 Javascript
加速IE的Javascript document输出的方法
2010/12/02 Javascript
jquery的index方法实现tab效果
2011/02/16 Javascript
jQuery对象和Javascript对象之间转换的实例代码
2013/03/20 Javascript
replace()方法查找字符使用示例
2013/10/28 Javascript
IE6下javasc#ipt:void(0) 无效的解决方法
2013/12/23 Javascript
jQuery中:input选择器用法实例
2015/01/03 Javascript
Javascript设计模式之观察者模式的多个实现版本实例
2015/03/03 Javascript
jquery实现初次打开有动画效果的网页TAB切换代码
2015/09/06 Javascript
Javascript中字符串replace方法的第二个参数探究
2016/12/05 Javascript
详谈js中数组(array)和对象(object)的区别
2017/02/27 Javascript
jQuery复合事件结合toggle()方法的用法示例
2017/06/10 jQuery
javascript回调函数详解
2018/02/06 Javascript
vue2.0安装style/css loader的方法
2018/03/14 Javascript
vue如何通过id从列表页跳转到对应的详情页
2018/05/01 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
2018/08/25 Javascript
浅谈vux之x-input使用以及源码解读
2018/11/04 Javascript
小程序点击图片实现自动播放视频
2020/05/29 Javascript
vue框架下部署上线后刷新报404问题的解决方案(推荐)
2019/04/03 Javascript
js常用正则表达式集锦
2019/05/17 Javascript
在Python的web框架中中编写日志列表的教程
2015/04/30 Python
python写入xml文件的方法
2015/05/08 Python
答题辅助python代码实现
2018/01/16 Python
使用Python处理BAM的方法
2018/09/28 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
2020/03/24 Python
台湾SHOPRO购物行家:亚洲首创影视.3C.家电.优质购物平台
2018/05/07 全球购物
求职信内容一般写什么?
2015/03/20 职场文书
员工试用期工作总结
2019/06/20 职场文书