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获取糗百图片代码实例
Dec 18 Python
详解Python的Flask框架中生成SECRET_KEY密钥的方法
Jun 07 Python
Python通过matplotlib画双层饼图及环形图简单示例
Dec 15 Python
python K近邻算法的kd树实现
Sep 06 Python
对json字符串与python字符串的不同之处详解
Dec 19 Python
Python中list循环遍历删除数据的正确方法
Sep 02 Python
centos+nginx+uwsgi+Django实现IP+port访问服务器
Nov 15 Python
Python基础之高级变量类型实例详解
Jan 03 Python
python3实现网页版raspberry pi(树莓派)小车控制
Feb 12 Python
如何学习Python time模块
Jun 03 Python
查看keras各种网络结构各层的名字方式
Jun 11 Python
Django实现随机图形验证码的示例
Oct 15 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 按位与或 (^ 、&)
2013/06/21 PHP
php防止恶意刷新与刷票的方法
2014/11/21 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
2015/02/07 PHP
PHP的pcntl多进程用法实例
2015/03/19 PHP
PHP的命令行命令使用指南
2015/08/18 PHP
PHP生成制作验证码的简单实例
2016/06/12 PHP
php实现base64图片上传方式实例代码
2017/02/22 PHP
实例解析php的数据类型
2018/10/24 PHP
workerman结合laravel开发在线聊天应用的示例代码
2018/10/30 PHP
基于Jquery+Ajax+Json的高效分页实现代码
2011/10/29 Javascript
如何使用Javascript正则表达式来格式化XML内容
2013/07/04 Javascript
两种方法解决javascript url post 特殊字符转义 + & #
2016/04/13 Javascript
jQuery中on绑定事件后引发的事件冒泡问题如何解决
2016/05/25 Javascript
AngularJS入门教程之过滤器详解
2016/08/19 Javascript
微信小程序表单弹窗实例
2018/07/19 Javascript
vue 根据数组中某一项的值进行排序的方法
2018/08/30 Javascript
微信上传视频文件提示(推荐)
2018/11/22 Javascript
VUE+node(express)实现前后端分离
2019/10/13 Javascript
Vue 实现复制功能,不需要任何结构内容直接复制方式
2019/11/09 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
python matplotlib 注释文本箭头简单代码示例
2018/01/08 Python
PyTorch线性回归和逻辑回归实战示例
2018/05/22 Python
python多任务及返回值的处理方法
2019/01/22 Python
python和mysql交互操作实例详解【基于pymysql库】
2019/06/04 Python
Python3爬虫中Splash的知识总结
2020/07/10 Python
Python实现加密的RAR文件解压的方法(密码已知)
2020/09/11 Python
HTML5触摸事件演化tap事件介绍
2016/03/25 HTML / CSS
意大利奢侈品网站:Italist
2016/08/23 全球购物
Java和Javasciprt的区别
2012/09/02 面试题
村干部群众路线整改措施思想汇报
2014/10/12 职场文书
2014年网络管理员工作总结
2014/12/01 职场文书
2016年高校自主招生自荐信范文
2015/03/24 职场文书
财务出纳岗位职责
2015/03/31 职场文书
2015年员工试用期工作总结
2015/05/28 职场文书
CSS3 制作的彩虹按钮样式
2021/04/11 HTML / CSS
服务器nginx权限被拒绝解决案例
2022/09/23 Servers