Django 的工程创建

1.环境安装

1. 创建虚拟环境

mkvirtualenv django_py3_1.11 -p python3

注意需要联网

2. 安装Django

使用django 1.11.11版本,注意需要联网

pip install django==1.11.11

3. 复习虚拟环境和pip的命令

# 虚拟环境
mkvirtualenv  # 创建虚拟环境
rmvirtualenv  # 删除虚拟环境
workon  # 进入虚拟环境、查看所有虚拟环境
deactivate  # 退出虚拟环境# pip
pip install  # 安装依赖包
pip uninstall  # 卸载依赖包
pip list  # 查看已安装的依赖包
pip freeze  # 冻结当前环境的依赖包

2.创建工程

在使用Flask框架时,项目工程目录的组织与创建是需要我们自己手动创建完成的。

在django中,项目工程目录可以借助django提供的命令帮助我们创建。

1. 创建

创建工程的命令为:

django-admin startproject 工程名称

例如:想要在桌面的code目录中创建一个名为demo的项目工程,可执行如下命令:

cd ~/Desktop/code
django-admin startproject demo

执行后,会多出一个新目录名为demo,此即为新创建的工程目录。

2. 工程目录说明

  • 与项目同名的目录,此处为demo。
  • settings.py 是项目的整体配置文件。
  • urls.py 是项目的URL配置文件。
  • wsgi.py 是项目与WSGI兼容的Web服务器入口。
  • manage.py 是项目管理文件,通过它管理项目。

3. 运行开发服务器

在开发阶段,为了能够快速预览到开发的效果,django提供了一个纯python编写的轻量级web服务器,仅在开发阶段使用。

运行服务器命令如下:

python manage.py runserver ip:端口
或:
python manage.py runserver

可以不写IP和端口,默认IP是127.0.0.1,默认端口为8000。

注意:

  • django默认工作在调式Debug模式下,如果增加、修改、删除文件,服务器会自动重启。
  • 按ctrl+c停止服务器。

3.创建子应用

在Web应用中,通常有一些业务功能模块是在不同的项目中都可以复用的,故在开发中通常将工程项目拆分为不同的子功能模块,各功能模块间可以保持相对的独立,在其他工程项目中需要用到某个特定功能模块时,可以将该模块代码整体复制过去,达到复用。

在Flask框架中也有类似子功能应用模块的概念,即蓝图Blueprint。

Django的视图编写是放在子应用中的。

1. 创建

在django中,创建子应用模块目录仍然可以通过命令来操作,即:

python manage.py startapp 子应用名称

manage.py 为上述创建工程时自动生成的管理文件。

例如,在刚才创建的demo工程中,想要创建一个用户users子应用模块,可执行:

cd ~/Desktop/code/demo
python manage.py startapp users

执行后,可以看到工程目录中多出了一个名为users的子目录。

2. 子应用目录说明

  • admin.py 文件跟网站的后台管理站点配置相关。
  • apps.py 文件用于配置当前子应用的相关信息。
  • migrations 目录用于存放数据库迁移历史文件。
  • models.py 文件用户保存数据库模型类。
  • tests.py 文件用于开发测试用例,编写单元测试。
  • views.py 文件用于编写Web应用视图。

3. 注册安装子应用

创建出来的子应用目录文件虽然被放到了工程项目目录中,但是django工程并不能立即直接使用该子应用,需要注册安装后才能使用。

注册安装一个子应用的方法,即是将子应用的配置信息文件apps.py中的Config类添加到INSTALLED_APPS列表中。

例如,将刚创建的users子应用添加到工程中,可在INSTALLED_APPS列表中添加'users.apps.UsersConfig'。

 

4.创建视图

同Flask框架一样,Django也用视图来编写Web应用的业务逻辑。

Django的视图是定义在子应用的views.py中的。

1. 创建

打开刚创建的users模块,在views.py中编写视图代码。

from django.http import HttpResponsedef index(request): """ index视图 :param request: 包含了请求信息的请求对象 :return: 响应对象 """ return HttpResponse("hello the world!") 

说明:

  • 视图函数的第一个传入参数必须定义,用于接收Django构造的包含了请求数据的HttpReqeust对象,通常名为request。
  • 视图函数的返回值必须为一个响应对象,不能像Flask一样直接返回一个字符串,可以将要返回的字符串数据放到一个HTTPResponse对象中。

2. 定义路由URL

1) 在子应用中新建一个urls.py文件用于保存该应用的路由。

2) 在users/urls.py文件中定义路由信息。

from django.conf.urls import urlfrom . import views# urlpatterns是被django自动识别的路由列表变量 urlpatterns = [ # 每个路由信息都需要使用url函数来构造 # url(路径, 视图) url(r'^index/$', views.index), ]

3) 在工程总路由demo/urls.py中添加子应用的路由数据。

from django.conf.urls import url, include
from django.contrib import adminurlpatterns = [url(r'^admin/', admin.site.urls), # django默认包含的 # 添加 url(r'^users/', include('users.urls')), ] 
  • 使用include来将子应用users里的全部路由包含进工程路由中;
  • r'^users/' 决定了users子应用的所有路由都已/users/开头,如我们刚定义的视图index,其最终的完整访问路径为/users/index/。

include函数除了可以传递字符串之外,也可以直接传递应用的urls模块,如

from django.conf.urls import url, include
from django.contrib import admin
import users.urls # 先导入应用的urls模块 urlpatterns = [ url(r'^admin/', admin.site.urls), # url(r'^users/', include('users.urls')), url(r'^users/', include(users.urls)), # 添加应用的路由 ] 

4) 启动运行

重新启动django程序

python manage.py runserver
 

转载于:https://www.cnblogs.com/yinjiangchong/p/9250952.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/427539.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python提取网页中p标签中的内容_使用Python进行爬虫的初学者指南

前言爬虫是一种从网站上抓取大量数据的自动化方法。即使是复制和粘贴你喜欢的网站上的引用或行,也是一种web抓取的形式。大多数网站不允许你保存他们网站上的数据供你使用。因此,唯一的选择是手动复制数据,这将消耗大量时间,甚至可…

OpenCv的连通域操作

由于项目需要,要对图像中的最大连通域进行标定,并且存储。首先需要使用cvFindCountour对边缘进行标定,其实它的原理就是连通域的边缘提取;其次就是对连通域进行大小判断找出最大的连通域;最后当然就是进行Rect并且ROI了…

DAY5网络

1.用select实现TCP客户端程序 #include <head.h> #define PORT 9999 // 服务器端口号 #define IP "192.168.125.74" // 服务器IP地址#define CIP "192.168.125.74" // 客户端 #define CPORT 6666int main(int argc, const char* argv[]) {// 创建套…

pyCharm最新2018激活码

最近开始研究python&#xff0c;因公司需要获取一些数据&#xff0c;比如电影名&#xff0c;航班名&#xff0c;航班号&#xff0c;列车号等等。所以让我来做一个爬虫去获取数据。所以我们就从这篇博文开始吧&#xff01;&#xff01;&#xff01; 首先告诉大家激活方式&#x…

提高电脑反应速度_设计师笔记本电脑推荐——视觉系ThinkBook 15p创造本

说到设计师笔记本电脑推荐&#xff0c;非近期大热的高颜值、高性能、更出彩的ThinkBook 15p创造本莫属了。作为专为时尚青年量身定做的品牌系列&#xff0c;ThinkBook一直都以“锐意破局”、“以思考重构世界”的理念征服着广大优秀的年轻创意用户&#xff0c;此次推出的全新产…

C语言 system函数

Windows函数windows操作系统下system () 函数详解&#xff08;主要是在C语言中的应用&#xff09; 函数名&#xff1a; system功 能&#xff1a; 发出一个DOS命令用 法&#xff1a; int system(char *command);system函数已经被收录在标准c库中&#xff0c;可以直接调用程序例…

javascript option 菜单图标_MacBook上神奇的Option键

不知道昨天的(Mac上Command键的妙用)有没有帮助到大家呢&#xff1f;今天我们就来讲一讲Mac上的Option键。Option作为Mac上四大控制键(Shift&#xff0c;Command&#xff0c;Control&#xff0c;Option)之一&#xff0c;Option在单独使用的情况下&#xff0c;很多时候是发挥调出…

OpenCV中cvResize函数图象放缩

图像大小变换void cvResize( const CvArr* src, CvArr* dst, int interpolationCV_INTER_LINEAR );src&#xff1a;输入图像. dst&#xff1a;输出图像. interpolation&#xff1a;差值方法: • CV_INTER_NN - 最近邻差值, • CV_INTER_LINEAR - 双线性差值 (缺省使用) • CV_…

学生电脑哪个牌子好_家用医用酒精棉球哪个牌子好,酒精棉片哪个牌子好

酒精制品是现在生活中常用的消毒剂&#xff0c;包括酒精消毒液、酒精洗手液、酒精喷雾剂、酒精湿巾、酒精棉球和酒精棉片等。这些酒精制品各有各的作用&#xff0c;市面上的品牌也比较多。下面就来介绍家用医用酒精棉球哪个牌子好。1、家用医用酒精棉球哪个牌子好目前在市面上使…

OpenCV图像的轮廓的匹配

一个跟轮廓相关的最常用到的功能是匹配两个轮廓.如果有两个轮廓,如何比较它们;或者如何比较一个轮廓和另一个抽象模板.矩比较两个轮廓最简洁的方式是比较他们的轮廓矩.这里先简短介绍一个矩的含义.简单的说,矩是通过对轮廓上所有点进行积分运算(或者认为是求和运算)而得到的一个…

Java Servlet 过滤器与 springmvc 拦截器的区别?

前言&#xff1a;在工作中&#xff0c;遇到需要记录日志的情况&#xff0c;不知道该选择过滤器还是拦截器&#xff0c;故总结了一下。 servlet 过滤器 定义 java过滤器能够对目标资源的请求和响应进行截取。过滤器的工作方式分为四种 应用场景 可以通过 doFilter 方法的 reques…

surface pro 6 黑苹果_微软Surface新款超薄触控笔抢鲜评测

微软Surface新款超薄触控笔抢鲜评测中文名&#xff1a;微软 Surface 超薄触控笔英文名&#xff1a;Surface Slim Pen日文名&#xff1a;Surface スリム ペン颜色&#xff1a;典雅黑&#xff08;只有这一个颜色&#xff09;中文官方链接&#xff1a;https://www.microsoftstore.…

java轻松实现无锁队列

1、什么是无锁(Lock-Free)编程 当谈及 Lock-Free 编程时&#xff0c;我们常将其概念与 Mutex(互斥) 或 Lock(锁) 联系在一起&#xff0c;描述要在编程中尽量少使用这些锁结构&#xff0c;降低线程间互相阻塞的机会&#xff0c;以提高应用程序的性能。类同的概念还有 "Lock…

numpy数组按某一维度相加_Python数据分析之NumPy(高级篇)

​一些更高级的ndarray处理where和一些其他的逻辑运算np.where(cond,x,y)&#xff1a;满足条件(cond)输出x&#xff0c;不满足输出yx_arr np.array([1.1, 1.2, 1.3, 1.4, 1.5])y_arr np.array([2.1, 2.2, 2.3, 2.4, 2.5])cond np.array([True, False, True, True, False])pr…

md5与des算法有何不同_到底AI芯片和传统芯片有何区别?

前两天成立仅两年国内专做人工智能FPGA加速算法的初创公司深鉴科技被国际巨头赛灵思收购了&#xff0c;在业界引起不小的震动。目前国内做AI芯片的公司可谓不少了&#xff0c;AI芯片已然成为了当下芯片行业最热领域。但是大部分人对AI芯片的架构应该都不是太了解。那么AI 芯片和…

Active Directory PowerShell模块收集AD信息

0x00 前言简介 Microsoft为Windows Server 2008 R2&#xff08;以及更高版本&#xff09;提供了多个Active Directory PowerShell cmdlet&#xff0c;这大大简化了以前需要将涉及到的ADSI冗长代码行放在一起的任务。 在Windows客户端上&#xff0c;需要安装远程服务器管理工具&…

anaconda对应python版本_Python基础——如何查看python版本、如何查看多个python版本

前言初学者来说&#xff0c;安装python过程是存在一定难度的。在安装过程中&#xff0c;可能安装了多个python版本&#xff0c;可能安装了anaconda导致有自带的python&#xff0c;同时本身电脑也安装了官方下载的python也茫然不知。导致可能有以下情况发生&#xff1a;1.pip in…

MATLAB统计与回归

11.1 前言統計的技巧與資料分析常常形影不離。一般統計使用加法、累加法、平均值&#xff0c;中間值等等&#xff0c;由於處理的對象是矩陣資料&#xff0c;故其基本統計之技巧已經廣為應用&#xff0c;其觀念也會在正常之運作中出現。統計學中比較特殊應用者為機率、亂數、常態…

yii2通过url访问类中的方法_每日学点---nginx变量使用方法详解(3)

也有一些内建变量是支持改写的&#xff0c;其中一个例子是 $args. 这个变量在读取时返回当前请求的 URL 参数串(即请求 URL 中问号后面的部分&#xff0c;如果有的话 )&#xff0c;而在赋值时可以直接修改参数串。我们来看一个例子&#xff1a;location /test { set $orig_args…

python语言format用法_详解Python中的format格式化函数的使用方法

format函数实现字符串格式化的功能 基本语法为&#xff1a; 通过 : 和 {} 来控制字符串的操作 一、对字符串进行操作 1. 不设置指定位置&#xff0c;按默认顺序插入 ①当参数个数等于{}个数的时候 str_1 "小明{}小美,可是小美{}小明".format("喜欢", &quo…