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解析xml模块封装代码
Feb 07 Python
python中实现php的var_dump函数功能
Jan 21 Python
Python+matplotlib绘制不同大小和颜色散点图实例
Jan 19 Python
20行python代码的入门级小游戏的详解
May 05 Python
Django 开发调试工具 Django-debug-toolbar使用详解
Jul 23 Python
基于python进行抽样分布描述及实践详解
Sep 02 Python
基于YUV 数据格式详解及python实现方式
Dec 09 Python
Python字符串的修改方法实例
Dec 19 Python
win10下opencv-python特定版本手动安装与pip自动安装教程
Mar 05 Python
matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)
Jan 05 Python
python tkinter实现定时关机
Apr 21 Python
基于Python实现一个春节倒计时脚本
Jan 22 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 php_openssl.dll的作用
2013/07/01 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
2021/02/22 PHP
把jquery 的dialog和ztree结合实现步骤
2013/08/02 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
2015/01/28 Javascript
jquery实现简单实用的打分程序实例
2015/07/23 Javascript
开启Javascript中apply、call、bind的用法之旅模式
2015/10/28 Javascript
详解AngularJS中的filter过滤器用法
2016/01/04 Javascript
Bootstrap模仿起筷首页效果
2016/05/09 Javascript
JQuery手速测试小游戏实现思路详解
2016/09/20 Javascript
Jquery Easyui选项卡组件Tab使用详解(10)
2016/12/18 Javascript
利用canvas中toDataURL()将图片转为dataURL(base64)的方法详解
2017/11/20 Javascript
如何在Angular8.0下使用ngx-translate进行国际化配置
2019/07/24 Javascript
layui表格 列自动适应大小失效的解决方法
2019/09/06 Javascript
JavaScript语法约定和程序调试原理解析
2020/11/03 Javascript
Python去掉字符串中空格的方法
2014/03/11 Python
python中使用百度音乐搜索的api下载指定歌曲的lrc歌词
2014/07/18 Python
python Socket之客户端和服务端握手详解
2017/09/18 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
2018/10/18 Python
Python实现简单层次聚类算法以及可视化
2019/03/18 Python
Numpy中对向量、矩阵的使用详解
2019/10/29 Python
使用 Python 处理3万多条数据只要几秒钟
2020/01/19 Python
Python 中Operator模块的使用
2021/01/30 Python
澳大利亚领先的在线美容商店:Facial Co
2017/10/22 全球购物
蛋白质世界:Protein World
2017/11/23 全球购物
生物化学研究助理员求职信
2013/10/09 职场文书
班组长竞聘书
2014/03/31 职场文书
最美护士演讲稿
2014/08/27 职场文书
上课不认真检讨书
2014/09/17 职场文书
安全生产月宣传标语
2014/10/06 职场文书
2016公司年会通知范文
2015/04/25 职场文书
2015年校务公开工作总结
2015/05/26 职场文书
六一晚会主持词开场白
2015/05/28 职场文书
行政处罚听证告知书
2015/07/01 职场文书
导游词之云南丽江古城
2019/09/17 职场文书
mybatis调用sqlserver存储过程返回结果集的方法
2021/05/08 SQL Server