pythondjango网页开发_Python-Web开发 Django 简介

Python 另一个 Web 开发框架 Django,它是一个基于 Python 定制的开源 Web 应用框架,最早源于一个在线新闻 Web 网站,后于2005年开源。

Django 框架

Django 采用了 MVC (即模型M,视图V和控制器C)构造的 Web 框架,但由于控制器接受用户输入的部分由框架自行处理,所以使用 Django 开发中里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV 模式。

Django 的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以“插件”形式服务于整个框架,

Django 有许多功能强大的第三方“插件”,你甚至可以很方便的开发出自己的工具包,这使得 Django 具有很强的可扩展性。它还强调快速开发和 DRY(Do Not Repeat Yourself) 原则。

安装 Django 库

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

pip3 install django

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

$ django-admin

cleanup-- remove old data fromthe database

compilemessages-- compile .po files to .mo foruse with gettext

createcachetable-- creates table forSQL cache backend

createsuperuser--create a superuser

dbshell-- run command-line client forthe current database

diffsettings-- display differences between the current settings andDjango defaults

dumpdata--output contents of database as a fixture

flush-- execute 'sqlflush'on the current database

inspectdb-- output Django model module for tables indatabase

loaddata-- install the named fixture(s) inthe database

makemessages-- pull out all strings marked fortranslation

reset-- executes 'sqlreset' forthe given app(s)

runfcgi--run this project as a fastcgi

runserver-- start a lightweight web server fordevelopment

shell-- run a Python interactive interpreter. Tries to use IPython, if it's available

sql -- print the CREATE TABLE statements forthe given app(s)

sqlall-- print the CREATE TABLE, CREATE INDEX and custom statements forthe given app(s)

sqlclear-- print the DROP TABLE statements forthe given app(s)

sqlcustom-- print the custom table-modifying SQL statements forthe given app(s)

sqlflush-- print the SQL statements required to returnall tables to installation state

sqlindexes-- print the CREATE INDEX statements forthe given app(s)

sqlreset-- print the DROP TABLE and CREATE TABLE statements forthe given app(s)

sqlsequencereset-- print the SQL statements for resetting sequences forthe given app(s)

startapp-- create Django app directory in this project's directory

syncdb -- create database tables for apps inINSTALLED_APPS where required

test-- run the test suite for the specified app, orthe entire site

testserver-- run a development server with data fromthe given fixture(s)

validate-- validate all installed modules

创建一个项目

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

$ 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 自带了一个简单的网络服务器,在开发过程中非常方便,所以我们无需安装任何其他软件即可在本地运行项目。

$ python manage.py runserver 127.0.0.1:8080Watchingforfile changes with StatReloader

Performing system checks...

System check identified no issues (0 silenced).

You have17 unapplied migration(s). Your project may not work properly until you apply the migrations forapp(s): admin, auth, contenttypes, sessions.

Run'python manage.py migrate'to apply them.

September27, 2019 - 10:54:32Django version2.2.5, using settings 'testweb.settings'Starting development server at http://127.0.0.1:8080/Quit the server with CONTROL-C.

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

127.0.0.1:表示可连接到服务器的IP地址 8080:端口号(如果不指定,端口号默认为 8000)

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

注意:开发服务器在需要的情况下会对每一次的访问请求重新载入一遍 Python 代码。所以你不需要为了让修改的代码生效而频繁的重新启动服务器。然而,一些动作,比如添加新文件,将不会触发自动重新加载,这时你得自己手动重启服务器。

配置开发服务器

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

$ vi TestProject/settings.py#省略上下文#设置语言代码

LANGUAGE_CODE = 'zh-hans'

#设置时区

TIME_ZONE = 'Asia/Chongqing'

然后刷新刚才的页面,页面会变为中文显示,如下图所示:

创建一个应用

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

项目 VS 应用 项目和应用有啥区别?

应用是一个专门做某件事的网络应用程序——比如博客系统,或者公共记录的数据库,或者简单的投票程序。

项目则是一个网站使用的配置和应用的集合。

项目可以包含很多个应用,应用可以被很多个项目使用。

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

$ python manage.py startapp polls

$ tree#列出当前目录结构

.|____db.sqlite3|____manage.py|____polls

| |______init__.py| |____admin.py| |____apps.py| |____migrations

| | |______init__.py| |____models.py| |____tests.py| |____views.py|____TestProject

| |______init__.py| |______pycache__

| | |______init__.cpython-37.pyc| | |____settings.cpython-37.pyc| | |____urls.cpython-37.pyc| | |____wsgi.cpython-37.pyc| |____settings.py| |____urls.py| |____wsgi.py

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

$ vim polls/views.pyfrom django.http importHttpResponsedefindex(request):return HttpResponse("你好,这是一个投票页面。")

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

$ vim polls/urls.pyfrom django.urls importpathfrom . importviews

urlpatterns=[

path('', views.index, name='index'),

]

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

$ vim TestProject/urls.pyfrom django.contrib importadminfrom django.urls importpath, 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 的高级功能。

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

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

相关文章

看不见的战斗——阿里云护航世界杯直播容灾实践

摘要: 1978年,中国人开始在电视机上看到世界杯, 中央电视台对阿根廷队参加的半决赛以及阿根廷和荷兰的决赛进行了录播。1982年世界杯,宋世雄坐在一家香港宾馆的小电视前进行解说,然后央视再把香港这家电视台提供的画面…

树莓派安装python3.5_树莓派 | 04 安装基于python3.5的tensorflow,解决python版本不匹配问题...

创建日期:2019-03-03 系列文章 安装流程 在终端中依次执行 sudo apt install libatlas-base-dev pip3 install tensorflow(安装python3的CPU版本tensorflow,目前是不可能正常使用的,因为树莓派自带的Python3是3.5,而用…

福建学业水平测试计算机考点大纲,福建高中信息技术学业水平考试说明大纲

信息技术学科考试目标与要求高中信息技术学科学业水平合格性考试应坚持高中信息技术课程的基本理念,强调教育立意、能力立意,注重对学生基础知识、基本技能的考查,以及运用信息技术解决实际问题的能力,主要包括理解、运用、观察、…

使用fastjson工具类json字符串和对象之间的转换

文章目录一、引入依赖二、创建user实体类三、测试一、引入依赖 <!--字符串和对象操作工具类 Start--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.62</version></dependenc…

崩管嵌入式还是单片机,盘就完事了

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 小枣君责编 | 阿秃大家好&#xff0c;我是小枣君。凡是从事计算机或电子信息相关领域工作的童鞋&#xff0c;一定都听说过嵌入式和单片机吧&#xff1f;很多人应该知道&#xff0c;这两个名词和硬件系统有着非常密切的关系。…

DRDS分布式SQL引擎—执行计划介绍

摘要&#xff1a; 本文着重介绍 DRDS 执行计划中各个操作符的含义&#xff0c;以便用户通过查询计划了解 SQL 执行流程&#xff0c;从而有针对性的调优 SQL。DRDS分布式SQL引擎 — 执行计划介绍前言数据库系统中&#xff0c;执行计划是对 SQL 如何执行的形式化表示&#xff0c;…

易商云页面认证失败是什么情况_Serverless 云原生框架 Malagu:认证与授权

认证与授权组件 malagu/security 。Malagu 框架结合传统后台管理系统和云计算平台的认证与授权理念&#xff0c;并借鉴了 Spring Security 设计思想&#xff0c;抽象了一套通用的认证与授权模型。Spring Security 对前后端分离架构支持不是特别友好&#xff0c;Malagu 框架在这…

sharepoint文件夹本地同步_mac文件同步软件-Resilio Sync Home

Resilio Sync Mac版是Mac平台上的一款文件同步软件&#xff0c;Resilio Sync Mac版使用起来非常的简单、方便。你可以通过链接、秘钥或二维码的方式共享你电脑里的任意文件夹&#xff0c;接收方也可以把共享文件存放在任意位置。Resilio Sync Home Pro for mac(文件同步软件)​…

河南洛阳计算机操作题,洛阳中招理化生实验操作考试、信息技术考试下月1日开考...

10日&#xff0c;记者从市教育局获悉&#xff0c;我市中招理化生实验操作考试、信息技术考试时间确定&#xff0c;分别在4月1日至23日、4月1日至30日举行。“目前&#xff0c;城市区义务教育学校已完成属地化管理工作。为进一步做好城市区中招工作&#xff0c;提高工作效率&…

(需求实战_进阶_01)SSM集成RabbitMQ 关键代码讲解、开发、测试

背景&#xff1a; 为了减轻服务器的压力&#xff0c;现在原有项目的基础上集成消息队列来异步处理消息! 此项目是企业真实需求&#xff0c;项目的代码属于线上生产代码&#xff0c;直接用于生产即可&#xff01; 此项目采用MQ发送消息模式为:路由模式&#xff0c;如果对RabbitM…

浅谈Service Mesh体系中的Envoy

摘要&#xff1a; 提到Envoy就不得不提Service Mesh&#xff0c;说到Service Mesh就一定要谈及微服务了&#xff0c;那么我们就先放下Envoy&#xff0c;简单了解下微服务、Service Mesh以及Envoy在Service Mesh中处于一个什么样的角色。背景最近因工作原因开始了解Service Mesh…

Java并发编程笔记之FutureTask源码分析

FutureTask可用于异步获取执行结果或取消执行任务的场景。通过传入Runnable或者Callable的任务给FutureTask&#xff0c;直接调用其run方法或者放入线程池执行&#xff0c;之后可以在外部通过FutureTask的get方法异步获取执行结果&#xff0c;因此&#xff0c;FutureTask非常适…

动动手指头, Feed 流系统亿级规模不用愁

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 少强责编 | 阿秃导读&#xff1a;互联网进入移动互联网时代&#xff0c;最具代表性的产品就是各种信息流&#xff0c;像是朋友圈、微博、头条等。这些移动化联网时代的新产品在过去几年间借着智能手机的风高速成长。这些产品…

(需求实战_进阶_02)SSM集成RabbitMQ 关键代码讲解、开发、测试

接上一篇&#xff1a;&#xff08;企业内部需求实战_进阶_01&#xff09;SSM集成RabbitMQ 关键代码讲解、开发、测试 https://gblfy.blog.csdn.net/article/details/104197309 文章目录一、RabbitMQ配置文件1. RabbitMQ生产者配置文件2. RabbitMQ消费者配置文件3. 连接配置文件…

我的特长是计算机VF编程,2016计算机二级考试VF模拟题及答案

2016计算机二级考试VF模拟题及答案四、读程序写出运行结果 (每小题5分&#xff0c;共20分)1. 数据表(STUDENT.DBF)内容如下&#xff1a;Record# 学号 姓名 性别 班级 总分1 1458 张萧 女 1班 5202 1479 王琴 女 2班 4953 1480 陆海军 男 3班 5004 1500 李文君 女 1班 4685 1503…

vue 判断同一数组内的值是否一直_vue一些笔记

vuex action&#xff1a;尤雨溪在知乎回答了&#xff0c;区分 actions 和 mutations 并不是为了解决竞态问题&#xff0c;vuex 真正限制你的只有 mutation 必须是同步的这一点&#xff0c;只是为了devtools追踪状态变化&#xff0c;或者说出于单一职责原则。https://www.zhihu.…

python正则表达式提取字符串的字母_Python正则表达式提取一部分字符串

1要提取大量烧成的一部分。有一个目标词和之前和之后单词的数量上限。因此所提取的子必须包含单词之前和之后它的上界目标字一起。在之前和之后的部分可以包含少言&#xff0c;如果目标字更接近文本的开头或结尾。进行了串"Lorem存有胡萝卜&#xff0c;增强大学生开发者&a…

机器学习从业人员到底做什么?

这篇文章是系列文章的第1部分,第2部分将阐述AutoML和神经架构搜索、第3部分将特别地介绍Google的AutoML。 关于机器学习人才的稀缺和公司声称他们的产品能够自动化机器学习而且能完全消除对ML专业知识需求的承诺经常登上媒体的新闻头条。在TensorFlow DevSummit的主题演讲中&a…

黑科技揭秘:面对海量的文本翻译任务,阿里翻译团队是如何解决的

摘要&#xff1a; 对国际化企业来说语言问题是亟待突破的重要关口。面对海量的文本翻译任务&#xff0c;昂贵低效的人工翻译显然不能满足需求&#xff0c;利用计算机自动进行文本翻译的机器翻译才是解决这个问题的关键。阿里翻译团队在机器翻译领域做了大量技术储备&#xff0c…

(需求实战_进阶_03)SSM集成RabbitMQ 路由模式关键代码讲解、开发、测试

接上一篇&#xff1a;&#xff08;企业内部需求实战_进阶_02&#xff09;SSM集成RabbitMQ 关键代码讲解、开发、测试 https://gblfy.blog.csdn.net/article/details/104214033 上一篇给大家介绍了在RabbitMQ 的管控台中&#xff0c;将队列绑定到指定的交换机上&#xff1b;这片…