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 私有函数的实例详解
Sep 11 Python
python+pandas分析nginx日志的实例
Apr 28 Python
Python Json模块中dumps、loads、dump、load函数介绍
May 15 Python
解决pycharm运行出错,代码正确结果不显示的问题
Nov 30 Python
python3.6使用tkinter实现弹跳小球游戏
May 09 Python
python实现五子棋小程序
Jun 18 Python
Python类的动态绑定实现原理
Mar 21 Python
Django数据库操作之save与update的使用
Apr 01 Python
Pycharm中使用git进行合作开发的教程详解
Nov 17 Python
python通过opencv调用摄像头操作实例分析
Jun 07 Python
python模板入门教程之flask Jinja
Apr 11 Python
python数字图像处理之图像自动阈值分割示例
Jun 28 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 Google的translate API代码
2008/12/10 PHP
php设计模式 Bridge (桥接模式)
2011/06/26 PHP
七款最流行的PHP本地服务器分享
2013/02/19 PHP
PHP中如何使用session实现保存用户登录信息
2015/10/20 PHP
php抽象方法和抽象类实例分析
2016/12/07 PHP
PHP利用二叉堆实现TopK-算法的方法详解
2017/04/24 PHP
php把字符串指定字符分割成数组的方法
2018/03/12 PHP
详解PHP版本兼容之openssl调用参数
2018/07/25 PHP
javascript实现的鼠标链接提示效果生成器代码
2007/06/28 Javascript
HTML5之lang属性与dir属性的详解
2013/06/19 Javascript
登陆成功后自动计算秒数执行跳转
2014/01/23 Javascript
JS将制定内容复制到剪切板示例代码
2014/02/11 Javascript
Node.js模块加载详解
2014/08/16 Javascript
详解React中的组件通信问题
2017/07/31 Javascript
vue使用v-for实现hover点击效果
2018/09/29 Javascript
学习node.js 断言的使用详解
2019/03/18 Javascript
对vuex中getters计算过滤操作详解
2019/11/06 Javascript
JS如何操作DOM基于表格动态展示数据
2020/10/15 Javascript
vue-router路由懒加载及实现的3种方式
2021/02/28 Vue.js
[02:04]2018DOTA2亚洲邀请赛Secret赛前采访
2018/04/03 DOTA
python清除函数占用的内存方法
2018/06/25 Python
TensorFlow基于MNIST数据集实现车牌识别(初步演示版)
2019/08/05 Python
Python 自动登录淘宝并保存登录信息的方法
2019/09/04 Python
Python OpenCV视频截取并保存实现代码
2019/11/30 Python
tensorflow 限制显存大小的实现
2020/02/03 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
HTML5中语义化 b 和 i 标签
2008/10/17 HTML / CSS
求职者应聘的自我评价
2013/10/16 职场文书
房地产员工找工作的自我评价
2013/11/15 职场文书
2015初中政教处工作总结
2015/07/21 职场文书
2016秋季校长开学典礼致辞
2015/11/26 职场文书
2016预备党员培训心得体会
2016/01/08 职场文书
感谢信
2019/04/11 职场文书
python字符串拼接.join()和拆分.split()详解
2021/11/23 Python
React四级菜单的实现
2022/04/08 Javascript
nginx.conf配置文件结构小结
2022/04/08 Servers