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 相关文章推荐
Windows下用py2exe将Python程序打包成exe程序的教程
Apr 08 Python
详解Python中的文本处理
Apr 11 Python
自己使用总结Python程序代码片段
Jun 02 Python
详解Python中的变量及其命名和打印
Mar 11 Python
独特的python循环语句
Nov 20 Python
深入理解python中的atexit模块
Mar 07 Python
解决Django migrate No changes detected 不能创建表的问题
May 27 Python
python编程使用协程并发的优缺点
Sep 20 Python
python TF-IDF算法实现文本关键词提取
May 29 Python
用python的turtle模块实现给女票画个小心心
Nov 23 Python
Django启动时找不到mysqlclient问题解决方案
Nov 11 Python
Python调用ffmpeg开源视频处理库,批量处理视频
Nov 16 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中include()与require()的区别说明
2010/03/10 PHP
PHP中限制IP段访问、禁止IP提交表单的代码
2011/04/23 PHP
用PHP和Shell写Hadoop的MapReduce程序
2014/04/15 PHP
PHP+FastCGI+Nginx配置PHP运行环境
2014/08/07 PHP
phpword插件导出word文件时中文乱码问题处理方案
2014/08/19 PHP
PHP使用CURL实现多线程抓取网页
2015/04/30 PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
2016/09/11 PHP
PHP微信模板消息操作示例
2017/06/29 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
formvalidator验证插件中有关ajax验证问题
2013/01/04 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(三)情景对话中仿打字机输出文字
2013/01/23 Javascript
浅析jQuery EasyUI中的tree使用指南
2014/12/18 Javascript
Javascript动画的实现原理浅析
2015/03/02 Javascript
JQuery勾选指定name的复选框集合并显示的方法
2015/05/18 Javascript
jquery实现图片水平滚动效果代码分享
2015/08/26 Javascript
教你用十行node.js代码读取docx的文本
2017/03/08 Javascript
微信小程序支付功能 php后台对接完整代码分享
2018/06/12 Javascript
Vue引入sass并配置全局变量的方法
2018/06/27 Javascript
javascript中的event loop事件循环详解
2018/12/14 Javascript
Vue中父子组件的值传递与方法传递
2020/09/28 Javascript
解决Antd Table组件表头不对齐的问题
2020/10/27 Javascript
[40:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs TNC
2018/04/01 DOTA
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
2017/07/20 Python
Python爬虫之正则表达式的使用教程详解
2018/10/25 Python
Python第三方Window模块文件的几种安装方法
2018/11/22 Python
Python基础之函数的定义与使用示例
2019/03/23 Python
Gauss-Seidel迭代算法的Python实现详解
2019/06/29 Python
Python学习笔记之文件的读写操作实例分析
2019/08/07 Python
Python编程中类与类的关系详解
2019/08/08 Python
python 默认参数相关知识详解
2019/09/18 Python
Python猴子补丁知识点总结
2020/01/05 Python
Pycharm IDE的安装和使用教程详解
2020/04/30 Python
仓库门卫岗位职责
2013/12/22 职场文书
2014年销售部工作总结
2014/12/01 职场文书
2014年个人年终总结
2015/03/09 职场文书
会计试用期工作总结2015
2015/05/28 职场文书