Django框架介绍及配置

一, WEB框架介绍

1.1Web应用程序处理流程

1.2Web框架程序的意义

用于搭建Web应用程序
免去不同Web应用相同代码部分的重复

1.3 Web应用程序的本质

接收并解析HTTP请求,获取具体的请求信息
处理本次HTTP请求,即完成本次请求的业务逻辑处理
构造并返回处理结果——HTTP响应

1.4. Web框架学习方法

这三天我们的学习目标和最终任务:

如何搭建工程程序

工程的组建
工程的配置
路由定义
视图函数定义

如何获取请求数据(操作request对象)

如何构造响应数据(构造response对象)

如何使用中间层

框架提供的其他功能组件的使用

数据库
模板
表单
admin

二,Django框架介绍

2.1 简介

Django,发音为[`dʒæŋɡəʊ],

django是用python语言写的开源web开发框架,并遵循MVC设计。

诞生历史: 劳伦斯出版集团为了开发以新闻内容为主的网站,而开发出来了这个框架,于2005年7月在BSD许可证下发布。这个名称来源于比利时的爵士音乐家DjangoReinhardt,他是一个吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。

由于Django在近年来的迅速发展,应用越来越广泛,被著名IT开发杂志SDTimes评选为2013SDTimes100,位列"API、库和框架"分类第6位,被认为是该领域的佼佼者。

django_belief

2.2 特点

1) 重量级框架

对比Flask框架,Django原生提供了众多的功能组件,让开发更简便快速。
1)提供项目工程管理的自动化脚本工具( 脚手架工具 )
2)数据库ORM支持(对象关系映射,英语:Object Relational Mapping)
3)模板
4)表单
5)Admin管理站点
6)文件管理
7)认证权限
8)session机制
9)缓存

2)MVT模式

有一种程序设计模式叫MVC, 其核心思想是分工、解耦,让不同的代码块之间降低耦合,增强代码的可扩展性和可移植性,实现向后兼容。

MVC的全拼为Model-View-Controller,最早由TrygveReenskaug在1978年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式,是为了将传统的输入(input)、处理(processing)、输出(output)任务运用到图形化用户交互模型中而设计的。

随着标准输入输出设备的出现,开发人员只需要将精力集中在业务逻辑的分析与实现上。

后来被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎。

现在虽然不再使用原来的分工方式,但是这种分工的思想被沿用下来,广泛应用于软件工程中,是一种典型并且应用广泛的软件架构模式。

后来,MVC的思想被应用在了Web开发方面,被称为Web MVC框架。

3)MVC模式说明

M全拼为Model,主要封装对数据库层的访问,对数据库中的数据进行增、删、改、查操作。
V全拼为View,用于封装结果,生成页面展示的html内容。
C全拼为Controller,用于接收请求,处理业务逻辑,与Model和View交互,返回结果。

4)Django使用的MVT模式说明

M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理。
V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返回应答。
T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html。

注:

差异就在于黑线黑箭头标识出来的部分
具体差异不是很多,叫法和代码不同, 思路相同.

5). Django学习资料

官方网站
Github源码
1.11版英文文档
1.11版中文文档
Django Book 教程
Tange With Django 教程
总结:
django框架是一个web框架, 而且是一个后端框架程序, 它不是服务器, 需要注意
django框架帮我们封装了很多的组件, 帮助我们实现各种功能, 具有很强的扩展性.

3, 环境安装

3.1. 创建虚拟环境

和我们学习flask一样, 我们需要使用 virtualenvwrapper 帮我们创建一个单独的虚拟环境, 搭建项目.

mkvirtualenv django_env -p python3
mkvirtualenv : 创建一个新的虚拟环境
django_env : 创建的新虚拟环境名称, 这个名称可以随意制定, 自己能看懂即可
-p : 制定使用的python解释器版本
python3 : 我们这里使用 python3 的解释器.
注意: 这一步需要联网

3.2. 安装Django

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

pip install django==1.11.11

pip : python 包管理器
install : 安装
django== 1.11.11 : 我们这里使用django1.11.11 这个版本, 现在最新的是 django 2.x的版本, 但是因为是最新的, 企业使用的不是很多, 所以我们这里还是使用1.x版本.

3.3. 虚拟环境和pip的命令

虚拟环境:

创建虚拟环境

mkvirtualenv

删除虚拟环境

rmvirtualenv

进入虚拟环境、查看所有虚拟环境

workon

退出虚拟环境

deactivate

3.4 pip:

安装依赖包

pip install

卸载依赖包

pip uninstall

查看已安装的依赖包

pip list

冻结当前环境的依赖包

pip freeze

四. 创建工程

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

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

换句话说, 我们可以使用命令行, 直接生成一个项目模板, 我们可以基于这个模板来进行开发.

4.1. 创建

创建工程的命令为:

生成一个django项目工程的使用方式:

django-admin startproject 工程名称

django-admin : django生成项目工程的命令
startproject : 快速创建一个django项目, 使用这个命令可以快速下载一个项目模板, 在我们所在的目录
工程名称 : 你想生成的项目名称, 这个名称可以随意定义
例如:

我们可以在桌面定义一个code目录, 在目录中:

创建一个名为demo的项目工程,可执行如下命令:

将目录切换到code中:

cd ~/Desktop/code

调用django项目生成命令,生成项目:

django-admin startproject demo

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

这个新创建出来的目录,其实是我们下载的一个django开发模板, 我们可以在这个模板中继续django的开发.

4.2. 工程目录说明

我们可以看到刚刚生成的项目目录结构为:

各个文件的作用:

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

4.3. 运行开发服务器

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

我们可以通过命令行进入刚刚创建的项目目录中:

进入创建的demo工程目录

cd demo

运行服务器命令如下:

我们可以运行django提供的建议运行服务器来运行我们添加的代码

python manage.py runserver IP地址:端口

如果IP地址和端口号不想指定,可以使用系统默认提供的127.0.0.1的ip地址和8000的端口号

上式就可以简写成:

python manage.py runserver

运行成功后命令行界面:

这里会看到一些红色的提示信息, 这些不是错误, 是提示我们有一些没有使用的迁移, 这里不用管它.

查看运行效果:
在浏览器中输入网址“127.0.0.1:8000”便可看到效果。

总结:

我们现在可以看到django框架已经运行起来了, 其中浏览器中看到的效果其实是django框架自动给我们生成的一个展示页面,这个页面的代码,在django代码中没有体现.
我们现在使用的是django给我们提供的简易服务器, 这个服务器不能用于上线, 只能用于开发调试, 因为它对于多任务请求的支持性不强. 用于上线可能会出问题.
这个简易服务器可以支持监听功能. 如果我们开启服务器, 并且修改了工程文件, 服务器能够监听我们的修改, 它会自动重启, 加载我们最新的修改. 方便我们的调试开发.
如果我们想要在命令行停止当前服务器的运行, 可以敲: ctrl + c

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

django服务器运行成功后,项目中会多出一个服务器文件: db.sqlite3
这是因为: django默认会对数据库进行支持, 如果我们没有配置数据库, 那么django会自己调用sqlite3这个数据库, 并且创建.

五,pycharm 启动项目

我们刚刚已经使用命令行的命令python manage.py runserver把项目跑起来了,

但是没有使用pycharm运行当前项目, 如果想要使用pycharm运行当前项目, 需要配置一些信息, 如下所示:

5.1. pycharm 打开当前项目:

5.2. 打开后报错:

报错原因以及解决方法:

我们使用命令行创建的项目, 而不是使用pycharm创建的, 所以当前项目中的python解析器没有对应到虚拟环境(django_py3_1.11) 中的python版本上, 故报错.
我们可以在pycharm的命令行中看出这一点: 命令行前面没有显示当前虚拟环境名称: ( django_py3_1.11 )
我们需要切换当前pycharm项目的python解析器.

5.3. 解决错误:

配置完成之后, 我们会发现错误已经没有了, 也就是说我们把pycharm中的python解析器配置完成了:

5.4. 运行项目:

我们可以在manage.py文件中直接调用运行按钮来运行项目:

出现的错误如何解决呢:

我们现在再次运行项目:

Snip20180803_26

总结:

当前我们的django项目是使用命令行创建出来的,所以用pycharm运行,解析器可能不匹配,故我们需要重新配置解析器.
其实django项目可以使用pycharm创建,但是这样创建出来的项目有很多我们用不到的配置文件,这些配置文件仅仅是为了支持pycharm的运行,对于最后的发布不利, 所以我们先使用命令行创建.
这样的配置仅需要一次, 按照图示一步一步进行即可.

六. 创建子应用

在日常开发中, 我们会经常使用重复的代码, 所以我们可以对代码进行封装, 在不同的地方进行调用.

同理: 如果一个项目中我们有很多的重复业务功能, 我们是否也可以对这些业务功能进行封装, 创建一个一个相对独立的模块来进行管理呢?

故: django中推出了子应用的概念, 使用子应用来管理各个业务功能, 如果有重复的, 可以方便复制调用.

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

其中:

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

6.1. 创建

我们可以在项目的根目录下, 调用命令行, 创建子应用:

创建子应用的常见命令:

python manage.py startapp 子应用名称

python : python3解释器
manage.py : 上一章创建项目工程的时候, 生成的管理整个项目的文件
startapp : 创建子应用的指令
子应用名称 : 这个名称可以自己随意定, 一般会根据项目需求来指定.
例如:

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

进入项目的根目录中:

cd ~/Desktop/code/demo

执行生成子应用的指令, 生成一个叫users的子应用:

python manage.py startapp users

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

一般一个子应用代表一个模块, 例如: 购物车模块, 支付模块, 商品展示模块等…

6.2. 子应用目录说明

查看此时的工程目录,结构如下: app_dir



生成的子应用中各个文件的作用:

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

6.3. 配置子应用

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

A. settings中默认的配置信息

settings文件里, installed_apps列表中工程默认配置的信息:

B. 添加子应用到settings中

配置子应用信息也被称为: 注册安装一个子应用,

即, 将子应用的配置信息文件apps.py中的Config类添加到INSTALLED_APPS列表中。

例如:

将刚创建的users子应用中apps.py文件的信息( users.apps.UsersConfig ), 添加到INSTALLED_APPS中, 如图所示:

使当前总的项目知道我们新添加的模块(子应用). 这样方便项目工程调用.

总结:

创建子应用的命令是: python manage.py startapp 子应用名称
在公司开发过程中, 一个需求模块, 一般对应一个子应用, 例如: 购物车模块, 商品展示模块等.
子应用的各个文件希望大家能够牢记:
apps ======= 配置当前子应用的相关信息
admin ======= 网站后台管理站点配置
migrations === 存放数据库迁移历史文件
models ====== 保存数据库模型类
tests ======== 开发测试用例, 编写单元测试
views ======= 编写web应用视图
创建出来的子应用需要在项目工程的settings.py文件中进行配置,才可以使用,否则项目工程不知道添加的子应用模块.

七. 创建视图

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

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

7.1. 创建

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

从django.http模块中导入HttpRespose

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

说明:

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

7.2. 定义路由URL

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

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

从urls模块中导入url

from django.conf.urls import url

从当前目录导入我们的视图模块views

from . 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 adminimport 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

在浏览器中输入网址127.0.0.1:8000/users/index/ 可看到返回的信息

八,配置、静态文件与路由

8.1. 配置文件

1. BASE_DIR

当前工程的根目录,Django会依此来定位工程内的相关文件,我们也可以使用该参数来构造文件路径。

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))___file___ : 可以理解为当前的文件
os.path.abspath ( 文件 ) : 获取这个文件的绝对路径
os.path.dirname( 路径 ) : 获取这个路径的上一级路径, 例如:
path1 = os.path.dirname( 'c://home/setttings.py' )
那么获取的结果为: path1 = 'c://home'
os.path.dirname( 路径 ) : 再次获取这个路径的下一级路径.
这样获取到的 BASE_DIR 其实就是当前项目的根目录.

2.DEBUG

设置是否为调试模式,创建工程后初始值为True,即默认工作在调试模式下。

调试模式的作用:

调试模式下django有个简易服务器在监听当前项目, 如果我们修改代码文件,服务器程序会自动重启, 重新加载修改过的文件 ( 方便开发 )

当Django框架程序出现异常时,向前端(浏览器)显示详细的错误追踪信息,例如: ( 方便调试 )

注意:部署线上运行的Django不要运行在调式模式下,记得修改DEBUG=False。

如果为非调试模式:

程序出错后, 浏览器仅显示 500 的错误代码, 不会显示具体的错误信息:

3. 本地语言与时区

Django支持本地化处理,即显示语言与时区支持本地化。

本地化是将显示的语言、时间等使用本地的习惯,这里的本地化就是进行中国化,中国大陆地区使用简体中文,时区使用亚洲/上海时区,注意这里不使用北京时区表示。

初始化的工程默认语言和时区为英语和UTC标准时区

LANGUAGE_CODE = 'en-us'  # 语言: 英语
TIME_ZONE = 'UTC'  # 时区: 协调世界时,又称世界统一时间、世界标准时间、国际协调时间
将语言和时区修改为中国大陆信息LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'


注意:

这里设置好时间之后, 我们需要把工程中添加的所有路径全部注释掉,才能够看到设置的中文效果生效.
如果我们自己添加的路由信息不删除, 则django默认加载用户添加的信息, 进而不加载上面的界面, 换句话说, 如果你设置了路由, 则django不走它内部的默认页面, 而是走我们定义的路由界面,就看不到上面的中文画面了.

8.2. 静态文件

我们一般会把项目中的CSS、图片、js以及html等看做静态文件。

静态文件我们会放在一个静态(static)文件夹中, 统一管理

我们在html页面中调用时,需要指定静态文件的路径,故, Django中提供了一种用于配置静态文件路径的解析方式。

静态文件可以放在项目根目录下,也可以放在应用的目录下,由于有些静态文件在项目中是通用的,所以推荐放在项目的根目录下,方便管理。

为了提供静态文件访问路径,我们需要在项目的settings.py文件中配置两个参数:

STATICFILES_DIRS : 存放查找静态文件的目录
STATIC_URL : 访问静态文件的URL前缀

例如:

1) 在项目根目录下创建static_files目录来保存静态文件。

如图:

2) 在demo/settings.py中修改静态文件的两个参数为

这个参数默认存在

STATIC_URL = '/static/'

我们可以添加这个参数, 用于补全静态文件路径

STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static_files'),
]

3)此时在static_files添加的任何静态文件都可以使用网址 /static/文件在static_files中的路径 来访问了。

例如:

我们向static_files目录中添加一个index.html文件,在浏览器中就可以使用127.0.0.1:8000/static/index.html来访问:

或者我们在static_files目录中添加了一个子目录和文件goods/detail.html,在浏览器中就可以使用127.0.0.1:8000/static/goods/detail.html来访问。

注意

Django 仅在调试模式下(DEBUG=True)能对外提供静态文件。

当DEBUG=False工作在生产模式时,Django不再对外提供静态文件,需要是用collectstatic命令来收集静态文件并交由其他静态文件服务器来提供。(详细在部署时会讲)

九路由说明

9.1. 路由定义位置

Django的主要路由信息定义在工程同名目录下的urls.py文件中,该文件是Django解析路由的入口。

每个子应用为了保持相对独立,可以在各个子应用中定义属于自己的urls.py来保存该应用的路由。然后用主路由文件包含各应用的子路由数据。

除了上述方式外,也可将工程的全部路由信息都定义在主路由文件中,子应用不再设置urls.py。如:


from django.conf.urls import url
from django.contrib import admin
# 导入子应用的视图模块
import users.viewsurlpatterns = [url(r'^admin/', admin.site.urls),# 添加子应用的路由信息,对应所对应的子应用视图方法url(r'^users/index/$', users.views.index)
]

9.2. 路由解析顺序

Django在接收到一个请求时,从主路由文件中的urlpatterns列表中以由上至下的顺序查找对应路由规则,如果发现规则为include包含,则再进入被包含的urls中的urlpatterns列表由上至下进行查询。

值得关注的由上至下的顺序,有可能会使上面的路由屏蔽掉下面的路由,带来非预期结果。例如:

urlpatterns = [url(r'^say', views.say),url(r'^sayhello', views.sayhello),
]

即使访问sayhello/路径,预期应该进入sayhello视图执行,但实际优先查找到了say路由规则也与sayhello/路径匹配,实际进入了say视图执行。

提示:
需要注意定义路由的顺序,避免出现屏蔽效应。

两种解决方法:
第一种:

# 调整书写顺序
from django.conf.urls import urlfrom . import viewsurlpatterns = [# 1. 调整书写顺序url(r'^sayhello', views.sayhello),url(r'^say', views.say)
]

第二种:

2.调整正则书写方式:from django.conf.urls import urlfrom . import viewsurlpatterns = [# 2.调整正则:url(r'^say/$', views.say),url(r'^sayhello/$', views.sayhello)
]

9.3. 路由命名与reverse反解析(逆向)

3.1 路由命名

在定义路由的时候,可以为路由命名,方便视图函数查找具体的某个路由。

1) 在使用include函数定义路由时,可以使用namespace参数定义路由的命名空间,如
url(r'^users/', include('users.urls', namespace='usersnamespace')),

命名空间表示,凡是users.urls中定义的路由,均属于namespace指明的users名下。

命名空间的作用:避免不同应用中的路由使用了相同的名字发生冲突,使用命名空间区别开。

2) 在定义普通路由时,可以使用name参数指明路由的名字,如
urlpatterns = [url(r'^index/$', views.index, name='indexname'),url(r'^say', views.say, name='sayname'),
]

3.2 reverse反解析

在视图函数中, 我们可以根据reverse进行反解析,获取当前视图函数的路径. 如:

# 注意导包路径, 把reverse导入文件,进行反解析
from django.core.urlresolvers import reverse def index(request):return HttpResponse("hello the world!")def say(request):url = reverse('usersnamespace:indexname')  print(url)    # 打印: /users/index/return HttpResponse('say')

补充:

对于未指明namespace的,reverse(路由name)
例如:
只指定了name=‘indexname’, 没有指定namespace, 那么调用的时候可以写成:
url = reverse(‘indexname’) 也可以获取到url的路径: /users/index/

对于指明namespace的,reverse(命名空间namespace:路由name)
例如:

url(r'^users/', include(users.urls, namespace='indexnamespace'))
url(r'^index/$', views.index, name='indexname')

用reverse反解析:

url = reverse('indexnamespace:indexname')

最后获取的结果是:

/users/index/

9.4. 路径结尾斜线/的说明

Django中定义路由时,通常以斜线/结尾,其好处是用户访问不以斜线/结尾的相同路径时,Django会把用户重定向到以斜线/结尾的路径上,而不会返回404不存在。

例如:

urlpatterns = [url(r'^index/$', views.index, name='index'),
]

用户访问 index 或者 index/ 网址,均能访问到index视图。

例如:

用index/发送请求的效果:

再例如:

使用 index发送请求的情况:

补充说明:

虽然路由结尾带/能带来上述好处,但是却违背了HTTP中URL表示资源位置路径的设计理念。

是否结尾带/以所属公司定义风格为准。

十, App应用配置

在每个应用目录中都包含了apps.py文件,用于保存该应用的相关信息。

在创建应用时,Django会向apps.py文件中写入一个该应用的配置类,如

from django.apps import AppConfigclass UsersConfig(AppConfig):name = 'users'

我们将此类添加到工程settings.py中的INSTALLED_APPS列表中,表明注册安装具备此配置属性的应用。

AppConfig.name 属性表示这个配置类是加载到哪个应用的,每个配置类必须包含此属性,默认自动生成。

AppConfig.verbose_name 属性用于设置该应用的直观可读的名字,此名字在Django提供的Admin管理站点中会显示,如

  from django.apps import AppConfigclass UsersConfig(AppConfig):name = 'users'verbose_name = '用户管理'

所以: 一般我们会在 UsersConfig 文件中添加上 verbose_name 属性, 为admin管理站点提供应用的信息.

Django框架介绍及配置相关推荐

  1. 一、Django框架介绍

    一.Django框架介绍 1.1 框架背景 ​ 要学习一个框架,了解它的诞生,背景,特点是必不可少的.只有对框架有足够多的了解才能确定这个框架是否适合你自己,当然实践是最好的老师,不能仅凭我一面之词来 ...

  2. python框架django文档_Django基础——Django框架介绍及模板语言

    Django框架,我们只需要关心二点: 1.根据用户访问不同的路径执行不同的函数 2.从HTML读取出内容,并且完成字符串的替换 而socket通信不需要我们自己写: 新建Django项目 命令行创建 ...

  3. Django框架介绍之cookie与session

    cookie http请求时无状态的,一个客户端第一次,第二次,第n次访问同一个服务器都是一样的,服务器都会按照一个新的连接处理.但是,有时候客户端需要服务器记住客户端的登录状态,譬如离开一会,回来之 ...

  4. Django框架介绍 day01

    再说Django之前先来说一下什么是web应用 软件开发架构 c/s架构 客户端 服务端 b/s架构 浏览器 服务器 本质:b/s架构其实也是c/s架构 HTTP协议 超文本传输协议:规定了客户端与服 ...

  5. 【django轻量级框架】Django框架介绍与安装

  6. Python学习笔记--10.Django框架快速入门之后台管理admin(书籍管理系统)

    Python学习笔记--10.Django框架快速入门之后台管理 一.Django框架介绍 二.创建第一个Django项目 三.应用的创建和使用 四.项目的数据库模型 ORM对象关系映射 sqlite ...

  7. Django框架的电商商城的设计与实现python语言

     摘要 随着计算机技术,网络技术的迅猛发展,Internet 的不断普及,网络在各个领域里发挥了越来越重要的作用.特别是随着近年人民生活水平不断提高,电商商城给商家的业务带来了更大的发展机遇. 在经济 ...

  8. 基于Python仓库管理系统的设计与实现django框架

    摘 要 随着信息化时代的到来,系统管理都趋向于智能化.系统化,仓库管理系统也不例外,但目前国内的有些公司仍然都使用人工管理,公司规模越来越大,同时信息量也越来越庞大,人工管理显然已无法应对时代的变化, ...

  9. 初识Django框架

    文章目录 初识Django框架 python三大主流web框架介绍 Django框架介绍 Django基本操作 创建一个django项目 应用解释 主要文件介绍 命令行与pycharm创建的区别 dj ...

最新文章

  1. java类的注释模板_IDEA添加Java类注释模版的方法
  2. 认识登录控件(Login、CreateUserWizard、LoginStatus和LoginName)
  3. F5金飞:“双十一”安全事项三部曲
  4. 海量数据库的查询优化及分页算法方案 1
  5. SAP Spartacus 支持 Vue 吗?
  6. 转大学毕业后拉开差距的原因
  7. Windows和linux提权方法,Windows与Linux本地用户提权体验(一)
  8. hibernate reverse engineering 中没有java src folder
  9. 如何在Python Django中处理用户身份验证
  10. 大型互联网系统的监控流水线
  11. Chainlink预言机正式集成至币安智能链
  12. Tomcat(一):基础配置详解
  13. logisim的安装
  14. 15 年工龄的阿里P9职场历程自述
  15. 5.2php小说网站源码,【PHP源码】杰奇小说源码V2.20仿《不朽文学网》原创小说网站系统程序(采集+支付+VIP)...
  16. 电子签章系统如何无代码接入第三方应用
  17. 几个优质的涵盖了各种语言的项目,快来看看吧
  18. RabbitMQ的持久化
  19. 粉条要经过什么检查才符合315?
  20. s60v5用java qq_s60v5 qq-QQ版本下载-kukud.net手机qq下载站

热门文章

  1. python 数独_Python中的数独检查器
  2. 【解决】ArgumentException: GetComponent requires that the requested component ‘XX‘ derives from...
  3. 北理工计算机考研难易程度,北京理工大学考研难吗?一般要什么水平才可以进入?...
  4. Unable to load library 'libtesseract304'
  5. 投身物联网创业6个月,我是如何选择 IoT 物联网平台的?
  6. 高端大气星空新品发布会PPT模板
  7. 快递查询工具,批量查询快递物流,并给部分单号标记颜色
  8. 无线网如何访问服务器公共盘,如何访问双频无线路由器网络共享服务器
  9. 基于java技术的装潢公司网站开发计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
  10. Jenkins - DingTalk