Django初探

简介: 对于我来说,现在处于一个特殊的状态,就是知道哪些东西是需要的,相对重要的,但是我也很清楚的知道,这些东西是我目前不擅长的。所以为了能够落实自己的想法,同时逼迫自己学习一些原本陌生的东西,其实是一件很有意思的事情,前提是不能把自己逼得太紧,否则除了压力就是各种纰漏。

对于我来说,现在处于一个特殊的状态,就是知道哪些东西是需要的,相对重要的,但是我也很清楚的知道,这些东西是我目前不擅长的。所以为了能够落实自己的想法,同时逼迫自己学习一些原本陌生的东西,其实是一件很有意思的事情,前提是不能把自己逼得太紧,否则除了压力就是各种纰漏。

Python这些年火得厉害,web框架也是应运而生。Django算是其中比较典型的一个web框架,

Django遵守BSD版权,初次发布于2005年7月, 并于2008年9月发布了第一个正式版本1.0 ,这个时间点上,国内的Java正是如火如荼的时候,web框架层出不穷,Python相对来说还算小众。没想到风水轮流转,没过多少年,就赶上了大数据的快车,数据分析里有Python的身影,devops近年来很火,自动化平台还是清一色的python框架,基本还是Django,所以说到Django,很多人并不陌生。

我花时间简单学习了下,发现和我的预期相符。原因在后面再解释下。

因为Python的跨平台,在windows下,linux都是兼容的,所以为了方便,我就直接在windows上做了测试。说几个坑。

一个是下载了安装包之后,Python版本是2.7的,如果是Linux自带的版本是2.6还是低了些。Python有两个大版本,2.7还有3.0的,虽然说是高低版本,但是竟然有很大的差别。所以在Django的版本上也会有一定的兼容落差。

比如我下载了Python2.7最新版本,Django相对较新的版本2.1,结果在安装Django的时候,就抛出了错误。

D:django-masterdjango-master>python setup.py install

Traceback (most recent call last):

File "setup.py", line 5, in <module>

...

File "D:programspython2.7Libsocket.py", line 47, in <module>

import _socket

ImportError: DLL load failed: 找不到指定的模块。

这个问题我看了很多资料,最后才反应过来,应该是版本的不兼容性。

所以我果断又下载了Python 3.6版本,然后再次尝试就没问题了。

所以一个基本的兼容列表图如下,可以避免走很多的弯路。

Django 版本 Python 版本
1.8 2.7, 3.2 , 3.3, 3.4, 3.5
1.9, 1.10 2.7, 3.4, 3.5
1.11 2.7, 3.4, 3.5, 3.6
2.0 3.5+

安装Django就是在下载的安装目录下,直接调用python setup.py install即可。

验证Django是否安装成功,也可以在python中引入这个库来测试是否正常。

>>> import django

>>> django.get_version()

'2.1'

>>>

如果要创建一个项目,比如说testdj,可以使用统一的命令行django-admin来实现。

django-admin startproject testdj

如果需要启动服务,则是在项目目录下使用python来调用目录下的manage.py文件。

当然如果是作为测试环境,这么做没什么问题,如果是线上环境使用,就需要使用更专业的方式,比如使用服务器为nginx

如果是2.0版本以上的Django,启动后的欢迎界面是下面这样的。

img_6ffc9743df7efc560c5e5050e507b0c3.jpe

较低的版本,稍微简单一些,其实对于我们的绝大多数应用来说,Python2.7还是使用范围较广,那么与之匹配的Django的版本也就保持在一个限定的版本范围内。

img_f691b19d3daff883437145b463f25ef2.jpe

当然这个是一个完全空白的模板,什么内容都没有,我们可以来一个helloworld

在项目目录下,创建一个Python文件view.py,使用的是HttpResponse来返回数据。

from django.http import HttpResponse

def hello(request):

return HttpResponse("Hello world ! jeanron100 ")

而页面信息的扭转,则是使用urls.py完成。

from django.conf.urls import url

from . import view

urlpatterns = [

url(r'^$', view.hello),

]

img_b43b569457f0a3c06ad6e1d09ae78f41.png

也可以用在这个基础上做到数据与视图分离。数据是在html文件中,视图则是在view.py里面修改,两者的映射是通过模板文件来衔接的。

比如数据文件hello.html的内容如下,就是一个变量来代替。

<h1>{{ hello }}</h1>

而视图的信息修改view.py,内容如下,原本的HttpResponse就修改为了render.

from django.shortcuts import render

def hello(request):

context = {}

context['hello'] = 'Hello World!'

return render(request, 'hello.html', context)

这个hello.html文件如何映射,是通过一个指定的目录来衔接的,比如指定目录为templates,hello.html就放置在这个目录下。

需要修改原本的settings.py文件,把目录的部分修改一下,指定到templates目录。

TEMPLATES= [{ 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [BASE_DIR+"/templates",],# 修改位置

。。。。

修改后的值也是根据映射关系,比如hello这个变量它的值就位hello World!

img_c91d735db4df21df700fb6e5b4a75113.png

如果要实现更为复杂的,就需要学习一下标签的内容,流程流转。整体而言和JSP的内容很相似,还需要结合html的很多知识。

目录
相关文章
|
前端开发 关系型数据库 数据库
Django初探(二)
之前写过一篇Django的介绍,简单部署之后就没有深入跟进了。 Django初探 上周末去广州参加技术大会,在往返的飞机上,自己调试了下Django里面的内容。
1289 0
|
16天前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
103 45
|
3月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
178 4
|
3月前
|
搜索推荐 前端开发 数据可视化
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
本文介绍了一个基于Django框架、协同过滤算法、ECharts数据可视化以及Bootstrap前端技术的酒店推荐系统,该系统通过用户行为分析和推荐算法优化,提供个性化的酒店推荐和直观的数据展示,以提升用户体验。
153 1
|
17天前
|
安全 数据库 开发者
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第26天】本文详细介绍了如何在Django框架下进行全栈开发,包括环境安装与配置、创建项目和应用、定义模型类、运行数据库迁移、创建视图和URL映射、编写模板以及启动开发服务器等步骤,并通过示例代码展示了具体实现过程。
29 2
|
20天前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
Python Web框架比较:Django vs Flask vs Pyramid
28 1
|
2月前
|
机器学习/深度学习 人工智能 算法
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
植物病害识别系统。本系统使用Python作为主要编程语言,通过收集水稻常见的四种叶片病害图片('细菌性叶枯病', '稻瘟病', '褐斑病', '稻瘟条纹病毒病')作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算法模型,并进行多轮迭代训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地模型文件。再使用Django搭建Web网页平台操作界面,实现用户上传一张测试图片识别其名称。
121 22
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
|
1月前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
Python Web框架比较:Django vs Flask vs Pyramid
24 4
|
2月前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
102 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
2月前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
90 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台