Python Django项目和应用的创建详解
作者:G人218 发布时间:2023-12-26 15:03:52
目录
创建一个Django项目
settings.py项目配置文件
urls.py路由系统
总结
创建一个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页面的模板地址templatesSTATICFILES_DIRS
:配置静态文件MIDDLEWARE
:配置中间件DEBUG
:默认为True,项目上线时改为FalseALLOWED_HOSTS
:限定请求中的host值
urls.py路由系统
Django的路由系统作用是使views中处理数据的函数与请求的url建立映射关系。
请求到来之后,根据urls.py里的关系条目,查找到与请求对应的处理方法,从而返回数据给客户端http页面。
在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模块中。
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!
来源:https://blog.csdn.net/lgc218/article/details/121549800
猜你喜欢
- chr(13) 是一个回车Chr(10) 是一个换行符chr
- 详细介绍Scrapy shell的使用Scrapy shell是Scrapy框架提供的一个非常有用的工具,可以帮助开发者快速地测试和调试Sc
- ASP与MySQL的连接ASP和MySQL连接目前有两种方法:一种方法是使用MySQLX之类的组件,不过这种连接方法需要支付一定的费用;另外
- 一、如何理解本条内容:一个“简单”和“复杂”的例子在我和开发人员沟通一个项目需求的时候,他们频频慨叹Mockup的设计所考虑情况之细致,很多
- 前言: 经过前面文章学习,我们知道 binlog 会记录数据库所有执行的 DDL 和 DML 语句(除了数据查询语句select、
- Python初学,定义urlConfig 接收参数,正常传递参数时,出现,多给了一个参数的错误问题,定义class的函数之后,在调用的时候出
- 第一步把tensorflow保存的.ckpt模型转为pb模型, 并记下模型的输入输出名字.第二步去ncnn的github上把仓库clone下
- 1. 列表使用sum, 如下代码,对1维列表和二维列表,numpy.sum(a)都能将列表a中的所有元素求和并返回,a.sum()用法是非法
- 测试1deco运行,但myfunc并没有运行def deco(func): print 'bef
- <html> <head> <meta charset="utf-8"/> <
- 前两天学习了一下socket编程,在向某大神请教问题时被嫌弃了,有一种还没学会走就想跑的感觉。大神说我现在的水平应该去做一些像是操作文件、序
- models.py:from django.db import models # 出版社class Publisher(models.Mod
- python的一个加速器包,这里不讲原理,只讲应用过程,以及给出几个小例子,直接写就行了; 另外还给出了numba如何定义使用List1、最
- 受<! #include file="filename.asp" --> 宏限制必须存在该文件并且会预先编译
- 在编程时你一定碰到过时间触发的事件,在VB中有timer控件,而asp中没有, 假如你要不停地查询数据库来等待一个返回结果的话,我想你一定知
- 1.Python 程序from flask import Flaskapp = Flask(__name__)@app.route('
- 申明本博客不提供任何服务器端程序,也不提供任何收费抢购软件。该博客仅用于学习selenium自动化工具。如有侵犯到任何公司的合法权益,请私信
- 语法plt.scatter(x, y, s=20, c='b')大小s默认为20,s=0时点不显示;颜色c默认为蓝色。为每一
- WINDOWS 下装MongoDB先去官网下载 :https://www.mongodb.com/download-center
- 本文实例讲述了PHP函数shuffle()取数组若干个随机元素的方法。分享给大家供大家参考,具体如下:有时候我们需要取数组中若干个随机元素(