前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Django 入门

Django 入门

原创
作者头像
HLee
修改于 2021-05-08 08:58:49
修改于 2021-05-08 08:58:49
61600
代码可运行
举报
文章被收录于专栏:房东的猫房东的猫
运行总次数:0
代码可运行

简介

Python 另一个 Web 开发框架 Django,它是一个基于 Python 定制的开源 Web 应用框架,最早源于一个在线新闻 Web 网站,后于2005年开源。Django 的功能大而全,它提供的一站式解决的思路,能让开发者不用在开发之前就在选择应用的基础设施上花费大量时间。它有很多功能强大的第三方插件,可以使我们更快速、方便的开发一个网站。

Django 框架

Django 采用了 MVC (即模型M,视图V和控制器C)构造的 Web 框架,但由于控制器接受用户输入的部分由框架自行处理,所以使用 Django 开发中里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV 模式。 Django 的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以“插件”形式服务于整个框架,Django 有许多功能强大的第三方“插件”,你甚至可以很方便的开发出自己的工具包,这使得 Django 具有很强的可扩展性。它还强调快速开发和 DRY(Do Not Repeat Yourself) 原则。

安装 Django 库

同其他模块一样,Django 的安装也非常简单,下面通过 pip3 包管理器来安装。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip3 install django

安装 Django 之后就可以使用管理工具django-admin,可以用来创建项目,创建应用,启动服务等操作命令。

创建一个项目

项目是 Django 实例的一系列设置的集合,它包括数据库配置、Django 特定选项以及应用程序的特定设置。安装成功后,接下来我们开始创建一个新项目TestProject

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ django-admin startproject TestProject

$ cd TestProject
$.
 |____manage.py
 |____TestProject
 | |______init__.py
 | |____settings.py
 | |____urls.py
 | |____wsgi.py
 

目录说明: 
TestProject: 项目的容器
manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互
TestProject/init.py: 一个空文件,告诉 Python 该目录是一个 Python 包 
TestProject/settings.py: 该 Django 项目的设置/配置
TestProject/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站”目录”
TestProject/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目

启动开发服务器

创建完项目后,其实就已经构成了一个可运行的 Django 网站。Django 自带了一个简单的网络服务器,在开发过程中非常方便,所以我们无需安装任何其他软件即可在本地运行项目。在TestProject项目目录下输入如下命令启动服务器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ python3 manage.py runserver 127.0.0.1:8080

May 07, 2021 - 03:15:50
Django version 3.2, using settings 'TestProject.settings'
Starting development server at http://127.0.0.1:8080/
Quit the server with CONTROL-C.
[07/May/2021 03:15:56] "GET / HTTP/1.1" 200 10697
[07/May/2021 03:15:56] "GET /static/admin/css/fonts.css HTTP/1.1" 200 423
[07/May/2021 03:15:56] "GET /static/admin/fonts/Roboto-Light-webfont.woff HTTP/1.1" 200 85692
[07/May/2021 03:15:56] "GET /static/admin/fonts/Roboto-Bold-webfont.woff HTTP/1.1" 200 86184
[07/May/2021 03:15:56] "GET /static/admin/fonts/Roboto-Regular-webfont.woff HTTP/1.1" 200 85876

如上所示服务启动完成。 django 开发服务是可用在开发期间的,一个内建的,轻量的web服务。它提供了一个在网站开发阶段时实监测你的代码修改并加载到它们,你能直接看到修改结果而不需要重启服务。

然后在浏览器输入服务器的IP及端口号(这里我们输入本机 IP 地址: 127.0.0.1:8080) ,如果正常启动。

配置开发服务器

Django 是一个支持国际化和本地化的框架,因此刚才我们看到的默认首页也是支持国际化的,我们将默认语言修改为中文,时区设置为东八区,配置如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ vim TestProject/settings.py

# 设置语言代码
LANGUAGE_CODE = 'zh-hans'
# 设置时区
TIME_ZONE = 'Asia/Chongqing'

创建一个应用

创建完项目,就可以在项目创建应用了,每一个应用都是一个 Python 包,并且遵循着相同的约定。Django 自带一个工具,可以帮你生成应用的基础目录结构,这样你就能专心写代码,而不是创建目录了。

你的应用可以存放在任何 Pythonpath 中定义的路径。在这个教程中,我们将在你的 manage.py 同级目录下创建投票应用。这样它就可以作为顶级模块导入,而不是 mysite 的子模块。 请确定你现在处于 manage.py 所在的目录下,然后运行这行命令来创建一个应用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ python3 manage.py startapp polls

然后我们就可以编辑polls应用中的views.py视图,操作如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ vim polls/views.py

from django.http import HttpResponse

def index(request):
    return HttpResponse("你好,这是一个投票页面。")

保存后退出,这样一个简单的视图就做好了,接下来需要给它加一个指向这个视图的路由。首先我们需要在polls应用下新建urls.py的文件,操作如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ vim polls/urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

保存后退出,然后还需要修改TestProject目录下的urls.py,增加polls的路由映射配置,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ vim TestProject/urls.py

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

函数 include() 允许引用其它URLconfs。每当 Django 遇到 include() 时,它会截断与此项匹配的 URL 的部分,并将剩余的字符串发送到URLconf以供进一步处理。 Django设计 include()的理念是使其可以即插即用,当包括其它 URL 模式时你应该总是使用include()admin.site.urls是唯一例外。

保存后退出,然后我们再访问网址 http://localhost:8080/polls/, 就能访问到我们新创建的页面了,如下图:

总结

本文通过上面几步操作,就可以快速创建一个可访问的网站,是不是觉得用 Django 开发网站原来这么简单方便。Django还有模板,表单,路由,认证,基本的数据库管理等等内建功能,接下来将进一步的介绍 Django 的高级功能。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
Swift基础语法(三)
chineseScore和mathScore也是存储属性,用来记录该学生的语文分数和数学分数。
拉维
2020/06/23
2.1K0
Swift基础语法(三)
Swift| 基础语法(四)
总结下 swift下的基础语法,里面涉及到:常量&变量、Swift中的数据类型、逻辑分支、循环、字符串相关、数组和字典、方法的书写调用等内容,考虑到阅读体验分多篇来展示,希望对大家学习swift有所帮助,同时也是对自己的一个总结。
進无尽
2018/09/12
1.4K0
Swift| 基础语法(四)
Swift 5.6 新特性
Swift 5.6 之前只有#available表示可用,Swift 5.6 之后增加了#unavailable表示不可用,二者意思相反。
YungFan
2022/03/30
1.3K0
Swift基础语法简化版(续)
闭包能够捕获和存储定义在其上下文中的任何常量和变量,即闭合并包裹那些常量和变量,因此被称为“闭包”。
拉维
2020/06/23
1.6K0
swift4.0语法杂记(精简版)
一、swift简史 1、介绍 swift是苹果公司于2014年推出用于撰写OS和iOS应用程序的语言。它由苹果开发者工具部门总监“克里斯.拉特纳”在2010年开始着手设计,历时一年完成基本的架构。到后来苹果公司大力投入swift语言的研发,于2014年发布这一语言的第一版本。swift2.0之后的语法则趋于稳定,2017年发布的swift4.0虽有改动,但也只是增添了一些新特性。这些新特性需要在Xcode9上运行才能显示出效果。值得一提的是它支持unicode9,也就是说,可以用某些图片图标来充当变量。
谦谦君子修罗刀
2018/05/02
15.6K0
swift4.0语法杂记(精简版)
Swift基础语法简化版
该网站是对Swift官方文档的翻译,但不是无脑翻译,而是结合作者的开发经验,在翻译的基础上,给出一些实用的建议。
拉维
2020/06/23
3.9K0
Swift基础语法(一)
Swift语言是苹果公司在Apple WWDC 2014上退出的,用来撰写MacOS和iOS应用程序。
拉维
2020/05/22
4.4K0
Swift 5.8 新特性
Swift 5.3 之后 self 可以在闭包中有条件省略,Swift 5.8 之后类中的[weak self]也可以省略 self。
YungFan
2023/03/30
1.5K0
Swift 6.0 新特性
Swift 发布十周年之际 Apple 推出了大版本 Swift 6.0,其内置于 Xcode 16,带来了如下的新特性。
YungFan
2024/07/05
2770
Swift学习之5.3新特性
Swift 5.3 之前即使有多个尾随闭包也只有最后一个能被写成精简的形式,这种写法一个闭包在圆括号内,另一个在外面。新的写法把这些闭包都放在圆括号外面,显得更加简洁。注意:尾随闭包中的第一个闭包的标签会被强制省略。
YungFan
2021/01/05
5980
36.Swift学习之Associated Object
Swift 可以利用 OC 的 runtime 和 KVC ,在运行时向一个对象添加值存储,这种方式称之为Associated Object。在使用 extension 扩展现有类的功能时,使用Associated Object的方式,可以将一个值 “关联” 到已有的要扩展的类上。该知识点在 iOS 开发中使用往往能优雅地解决很多问题。
YungFan
2019/09/29
2.2K1
Swift| 基础语法(五)
总结下 swift下的基础语法,里面涉及到:常量&变量、Swift中的数据类型、逻辑分支、循环、字符串相关、数组和字典、方法的书写调用等内容,考虑到阅读体验分多篇来展示,希望对大家学习swift有所帮助,同时也是对自己的一个总结。
進无尽
2018/09/12
2.3K0
Swift| 基础语法(五)
Swift 3到5.1新特性整理
Swift 5.0 最重要的自然是ABI Stability, 对此可以看这篇 Swift ABI 稳定对我们到底意味着什么 。
小刀c
2022/08/16
4.8K0
Swift 3到5.1新特性整理
Swift Runtime ?
你肯定也想过       在OC中相信每一个iOS开发都知道Runtime, 现在Swift也更新到4.0版本了,要是你也学习过Swift的话你可能也会想过这样一个问题,OC大家都知道是有动态性的,你能通过Runtime 的API获取你想要的属性方法等等,那Swift呢?是不是也和OC一样呢?       这个问题在我看Swift的时候也有想过,带着这个问题就总结出了今天这篇文章。       先说说这个Runtime,在自己之前的文章中有总结过关于OC的Runtime以及它API的一些基本的方法和在项目中
Mr.RisingSun
2018/02/06
5K0
Swift Runtime ?
Swift基础语法(二)
我们之前介绍的数组Array、字典Dictionary等,都是值类型,而函数是引用类型。
拉维
2020/06/02
2.3K0
Swift-MVVM 简单演练(一)
Swift-MVVM 简单演练(二) Swift-MVVM 简单演练(三) Swift-MVVM 简单演练(四) 前言 最近在学习swift和MVVM架构模式,目的只是将自己的学习笔记记录下来,方便自己日后查找,仅此而已!!! 本来打算一篇全部搞定的,但是简书每篇文章只能写大约不超过15000字的内容,因此只能分开写了。 如果有任何问题,欢迎和我一起讨论。当然如果有什么存在的问题,欢迎批评指正,我会积极改造的! ---- 这篇文章都写啥 自定义NavgationBar 抽取便利构造函数 初步的下拉刷新/上
用户1890628
2018/05/10
10.6K0
27.Swift学习之与OC混编
在目前iOS开发语言从Objective-C到Swift的过渡时期,开发中难免会碰到两种语言同时存在的情况,如果在同一个项目中,两种语言并存,那么该项目就是一个混合项目。在混合项目中,就会存在语言相互调用的情况,那么一个是上世纪的“老人”,一个是初出茅庐的“少年”,它们的沟通是存在障碍的,如何才能在一个项目中让两种语言可以相互调用呢?Apple给我们做好了“桥接”工作,但是在Objective-C的项目中调用Swift与在Swift项目中调用Objective-C,处理的方式是不一样的,下面来进行一个简单的介绍。
YungFan
2018/12/26
1.3K0
module & Swift库
一个module是机器代码和数据的最小单位,可以独立于其他代码单位进行链接 通常,module是通过编译单个源文件生成的目标文件。例如:当前的test.m被编译成目标文件test.o时,当前的目标文件就代表了一个module 这里有一个问题,module在调用的时候会产生开销,当使用一个静态库的时:@import TestStaticFramework; 如果静态库中包含许多.o文件。这岂不是会导入很多module? 当然不会。在静态链接的时候,也就是静态库链接到主项目或者动态库,最终生成可执行文件或
ruochen
2021/12/05
2.2K0
Swift 4.0 新特性
WWDC 2017 带来了很多惊喜,在这次大会上,Swift 4 也伴随着 Xcode 9 测试版来到了我们的面前,虽然正式版要8月底9月初才会公布,但很多强大的新特性正吸引我们去学习它。根据大会上已经开放的新特性,先一睹为快。 体验 Swift 4包含在Xcode 9中,您可以从Apple的开发者门户下载最新版本的Xcode 9(您必须拥有一个活跃的开发者帐户)。 每个Xcode测试版将在发布时捆绑最新的Swift 4快照。在阅读时,您会注意到[SE-xxxx]格式的链接。 这些链接将带您到相关的Swif
xiangzhihong
2018/02/06
1.8K0
Swift 4.0 新特性
Swift中的命名空间
命名空间namespace在C++、C#里面是一个常见概念,Swift中也引入了这样一个机制,下面来探索一下这个命名空间的来龙去脉。
YungFan
2018/12/26
2.5K0
相关推荐
Swift基础语法(三)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档