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中atexit模块的基本使用示例
Jul 08 Python
解析Mac OS下部署Pyhton的Django框架项目的过程
May 03 Python
Python设计模式之抽象工厂模式
Aug 25 Python
请不要重复犯我在学习Python和Linux系统上的错误
Dec 12 Python
python实现rsa加密实例详解
Jul 19 Python
django admin添加数据自动记录user到表中的实现方法
Jan 05 Python
Python基于辗转相除法求解最大公约数的方法示例
Apr 04 Python
Python3使用turtle绘制超立方体图形示例
Jun 19 Python
python3实现域名查询和whois查询功能
Jun 21 Python
用django-allauth实现第三方登录的示例代码
Jun 24 Python
Python高级特性之闭包与装饰器实例详解
Nov 19 Python
python json load json 数据后出现乱序的解决方案
Feb 27 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
虫族 Zerg 热键控制
2020/03/14 星际争霸
DC《小丑》11项提名领跑奥斯卡 Netflix成第92届奥斯卡提名最大赢家
2020/04/09 欧美动漫
fleaphp rolesNameField bug解决方法
2011/04/23 PHP
PHP多进程编程实例
2014/10/15 PHP
列举PHP的Yii 2框架的开发优势
2015/07/03 PHP
使用PHP uniqid函数生成唯一ID
2015/11/18 PHP
详谈php中 strtr 和 str_replace 的效率问题
2017/05/14 PHP
屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键 的javascript代码
2007/04/01 Javascript
js使下拉列表框可编辑不止是选择
2013/12/12 Javascript
JavaScript中的prototype和constructor简明总结
2014/04/05 Javascript
nodejs中操作mysql数据库示例
2014/12/20 NodeJs
js实现文本框选中的方法
2015/05/26 Javascript
初识Javascript小结
2015/07/16 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
2016/04/19 Javascript
JavaScript中的this引用(推荐)
2016/08/05 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
2017/04/11 Javascript
JS表格组件神器bootstrap table使用指南详解
2017/04/12 Javascript
React 组件转 Vue 组件的命令写法
2018/02/28 Javascript
深入了解query和params的使用区别
2019/06/24 Javascript
js实现复制粘贴的两种方法
2020/12/04 Javascript
Python面向对象之类和实例用法分析
2019/06/08 Python
Python实现制度转换(货币,温度,长度)
2019/07/14 Python
在python Numpy中求向量和矩阵的范数实例
2019/08/26 Python
对tensorflow中的strides参数使用详解
2020/01/04 Python
Python MOCK SERVER moco模拟接口测试过程解析
2020/04/13 Python
python 日志模块 日志等级设置失效的解决方案
2020/05/26 Python
python读取图片颜色值并生成excel像素画的方法实例
2021/02/19 Python
HTML5的postMessage的使用手册
2018/12/19 HTML / CSS
董事长秘书职责
2014/01/31 职场文书
中学生个人自我评价
2014/02/06 职场文书
《识字五》教学反思
2014/03/01 职场文书
淘宝好评语大全
2014/05/05 职场文书
教师群众路线剖析材料
2014/09/29 职场文书
践行三严三实心得体会
2014/10/13 职场文书
react使用antd的上传组件实现文件表单一起提交功能(完整代码)
2021/06/29 Javascript
Django基础CBV装饰器和中间件
2022/03/22 Python