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 xlsxwriter库生成图表的应用示例
Mar 16 Python
Python的iOS自动化打包实例代码
Nov 22 Python
对pandas中时间窗函数rolling的使用详解
Nov 28 Python
python实现飞机大战游戏
Oct 26 Python
centos 安装Python3 及对应的pip教程详解
Jun 28 Python
如何利用Pyecharts可视化微信好友
Jul 04 Python
在python中将list分段并保存为array类型的方法
Jul 15 Python
用Python画小女孩放风筝的示例
Nov 23 Python
使用 Python 处理3万多条数据只要几秒钟
Jan 19 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
Mar 06 Python
Python可以实现栈的结构吗
May 27 Python
Python2及Python3如何实现兼容切换
Sep 01 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
在PHP中使用X-SendFile头让文件下载更快
2014/06/01 PHP
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
2014/06/23 PHP
PHP实现事件机制实例分析
2015/06/26 PHP
js数据验证集合、js email验证、js url验证、js长度验证、js数字验证等简单封装
2010/05/15 Javascript
解析JavaScript中instanceof对于不同的构造器或许都返回true
2013/12/03 Javascript
SuperSlide2实现图片滚动特效
2014/06/20 Javascript
Javascript基础知识(一)核心基础语法与事件模型
2014/09/29 Javascript
JS实现仿微博可关闭弹出层效果
2015/09/21 Javascript
深入理解JavaScript中的call、apply、bind方法的区别
2016/05/30 Javascript
Bootstrap表单Form全面解析
2016/06/13 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
js实现简单的手风琴效果
2017/02/27 Javascript
微信小程序request请求后台接口php的实例详解
2017/09/20 Javascript
webpack之引入图片的实现及问题
2018/10/08 Javascript
el-form 多层级表单的实现示例
2020/09/10 Javascript
Vue Elenent实现表格相同数据列合并
2020/11/30 Vue.js
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
[07:01]DOTA2-DPC中国联赛正赛 Aster vs Magma 3月5日 赛后选手采访
2021/03/11 DOTA
python写的ARP攻击代码实例
2014/06/04 Python
Python开发的单词频率统计工具wordsworth使用方法
2014/06/25 Python
python中反射用法实例
2015/03/27 Python
尝试用最短的Python代码来实现服务器和代理服务器
2016/06/23 Python
Django代码性能优化与Pycharm Profile使用详解
2018/08/26 Python
python+mysql实现学生信息查询系统
2019/02/21 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
2020/05/26 Python
python 实现两个npy档案合并
2020/07/01 Python
天猫超市:阿里巴巴打造的网上超市
2016/11/02 全球购物
瑞典网上购买现代和复古家具:Reforma
2019/10/21 全球购物
DataReader和DataSet的异同
2014/12/31 面试题
护士试用期自我鉴定
2014/02/08 职场文书
物业总经理助理岗位职责
2014/06/29 职场文书
安全员岗位职责
2015/02/10 职场文书
小学五年级班主任工作经验交流材料
2015/11/02 职场文书
深入解析NumPy中的Broadcasting广播机制
2021/05/30 Python
SQL基础查询和LINQ集成化查询
2022/01/18 MySQL
Python实现为PDF去除水印的示例代码
2022/04/03 Python