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实现划词翻译
Apr 23 Python
python读写json文件的简单实现
Apr 11 Python
python绘制简单折线图代码示例
Dec 19 Python
新手常见6种的python报错及解决方法
Mar 09 Python
Python 函数返回值的示例代码
Mar 11 Python
了解不常见但是实用的Python技巧
May 23 Python
python安装numpy和pandas的方法步骤
May 27 Python
python网络编程之多线程同时接受和发送
Sep 03 Python
python获取网络图片方法及整理过程详解
Dec 20 Python
python实现画图工具
Aug 27 Python
python 提高开发效率的5个小技巧
Oct 19 Python
Python wordcloud库安装方法总结
Dec 31 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
建立动态的WML站点(三)
2006/10/09 PHP
php下删除一篇文章生成的多个静态页面
2010/08/08 PHP
php中将网址转换为超链接的函数
2011/09/02 PHP
php+ajax实现图片文件上传功能实例
2014/06/17 PHP
PHP框架Swoole定时器Timer特性分析
2014/08/19 PHP
php实现粘贴截图并完成上传功能
2015/05/17 PHP
搭建基于Docker的PHP开发环境的详细教程
2015/07/01 PHP
php常用图片处理类
2016/03/16 PHP
PHP获取对象属性的三种方法实例分析
2019/01/03 PHP
getElementById在任意一款浏览器中都可以用吗的疑问回复
2007/05/13 Javascript
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
2013/03/25 Javascript
自己实现ajax封装示例分享
2014/04/01 Javascript
JavaScript实现找出数组中最长的连续数字序列
2014/09/03 Javascript
浅谈Jquery为元素绑定事件
2015/04/27 Javascript
Javascript中With语句用法实例
2015/05/14 Javascript
javascript精确统计网站访问量实例代码
2015/12/19 Javascript
浅谈javascript中的Function和Arguments
2016/08/30 Javascript
基于ES6 Array.of的用法(实例讲解)
2017/09/05 Javascript
如何使node也支持从url加载一个module详解
2018/06/05 Javascript
简单说说如何使用vue-router插件的方法
2019/04/08 Javascript
vue+echarts实现可拖动节点的折线图(支持拖动方向和上下限的设置)
2019/04/12 Javascript
jQuery实现的上拉刷新功能组件示例
2020/05/01 jQuery
Python函数中定义参数的四种方式
2014/11/30 Python
python基于隐马尔可夫模型实现中文拼音输入
2016/04/01 Python
快速入手Python字符编码
2016/08/03 Python
Python中表达式x += y和x = x+y 的区别详解
2017/06/20 Python
Python环境Pillow( PIL )图像处理工具使用解析
2019/09/12 Python
Python中生成一个指定长度的随机字符串实现示例
2019/11/06 Python
python实现的分层随机抽样案例
2020/02/25 Python
Python嵌入C/C++进行开发详解
2020/06/09 Python
使用python-cv2实现Harr+Adaboost人脸识别的示例
2020/10/27 Python
Anaconda的安装与虚拟环境建立
2020/11/18 Python
西安启天科技有限公司网络工程师面试题笔试题
2016/06/12 面试题
称象教学反思
2014/02/03 职场文书
教师廉洁自律承诺书
2014/05/26 职场文书
Java实现给Word文件添加文字水印
2022/02/15 Java/Android