Django是Python开发最火热的一个框架!小白必学的Django框架!

私信小编007即可获取数十套PDF哦!即可获取数十套PDF哦!

3、Django项目目录

1) urls.py:网址入口,关联到对应的views.py中的一个函数(或generic类),访问网址就对应一个函数。

2) views.py:处理用户发出的请求,与urls.py对应, 通过渲染templates中的网页可以将显示内容,如登陆后的用户名,用户请求的数据等输出到网页。

3) models.py:与数据库操作相关,存入或读取数据时用到,用不到数据库时可以不使用。

4) forms.py:表单,用户在浏览器上输入数据提交,对数据的验证工作以及输入框的生成等工作,也可以不使用。

5) templates文件夹:views.py中的函数渲染templates中的html模板,得到动态内容的网页,可以用缓存来提高速度。

6) admin.py:后台,可以用很少的代码就拥有一个强大的后台。

7) settings.py:Django 的配置文件,如 DEBUG 的开关,静态文件的位置等。

5、视图与网址

views.py:

from django.http import HttpResponse

def helloWorld(request):

return HttpResponse("Hello world! ")

urls.py:

from django.conf.urls import url

from . import view

urlpatterns = [

url(r‘^$‘, view.helloWorld)

]

启动服务器,并在浏览器访问:127.0.0.1:8000。

修改后的urls.py:

from django.conf.urls import url

from . import view

urlpatterns = [

url(r‘^helloWorld$‘, view.helloWorld)

]

启动服务器,并在浏览器访问:127.0.0.1:8000/helloWorld。

url() 函数:可以接收四个参数,分别是两个必选参数regex、view 和两个可选参数kwargs、name:

① regex:正则表达式,与之匹配的 URL 会执行对应的第二个参数 view。

② view:用于执行与正则表达式匹配的 URL 请求。

③ kwargs:视图使用的字典类型的参数。

④ name:用来反向获取 URL。

6、Django模板

1) 实例:

① 在app目录中,创建 templates 目录并建立 helloWorld.html文件:

  1. <h1>{{ helloWorld }}</h1>

② 向Django说明模板文件的路径,修改settings.py文件,修改 TEMPLATES 中的 DIRS 为 [BASE_DIR+"/templates",]。

③ 修改views.py:

from django.shortcuts import render

def hello(request):

context = {}

context[‘helloWorld‘] = ‘Hello World!‘

return render(request, ‘helloWorld.html‘, context)

render使用了一个字典 context 作为参数,context 字典中元素的键值 "helloWorld" 对应了模板中的变量 "{{ helloWorld }}"。

④ 启动服务器,并在浏览器访问:127.0.0.1:8000/helloWorld。

2) Django 模板标签

① if/else 标签

if/else支持嵌套,{% if %} 标签接受and、or 或not关键字来对多个变量做判断,或对变量取反。

  1. {% if condition %}
  2. ...
  3. {% endif %}

或者:

  1. {% if condition1 %}
  2. ...
  3. {% elif condiiton2 %}
  4. ...
  5. {% else %}
  6. ...
  7. {% endif %}

② for 标签

{% for %} 允许在一个序列上迭代。支持嵌套。每一次循环中,模板系统会渲染在 {% for %} 和 {% endfor %} 之间的所有内容。

  1. <ul>
  2. {% for person in list %}
  3. <li>{{ person.name }}</li>
  4. {% endfor %}
  5. </ul>

给标签增加一个 reversed 使得该列表被反向迭代:

  1. {% for person in list %}
  2. ...
  3. {% endfor %}

③ ifequal/ifnotequal 标签

{% ifequal %} 标签比较两个值,当他们相等时,显示在 {% ifequal %} 和 {% endifequal %} 之中所有的值。和 {% if %} 类似, {% ifequal %} 支持可选的 {% else%} 标签。

  1. {% ifequal person1 person2 %}
  2. <h1>YES</h1>
  3. {% endifequal %}

④ 注释标签

Django 注释使用 {# #}。

⑤ 过滤器

模板过滤器可以在变量被显示前修改它,过滤器使用管道字符:

{{ name|lower }}大写转换为小写。

一个过滤器管道的输出又可以作为下一个管道的输入:

{{ name|first|upper }}将第一个元素转化为大写。

有些过滤器有参数,过滤器的参数跟随冒号之后并总是以双引号包含:

{{ name|truncatewords:"3" }}显示变量的前3个词。

addslashes:添加反斜杠到任何反斜杠、单引号或者双引号前面。

date:按指定的格式字符串参数格式化date或datetime对象,如{{ pub_date|date:"F j, Y" }}。

length:返回变量的长度。

⑥ include 标签

{% include %} 标签允许在模板中包含其它的模板的内容。

  1. {% include "test.html" %}

7、Django模型

Django 对各种数据库提供了很好的支持,Django 为数据库提供了统一的调用API,可以根据业务需求选择不同的数据库。

以MYSQL数据库为例,安装 mysql 驱动的命令:sudo pip install mysqlclient。

1) 数据库配置

在项目的settings.py文件中找到 DATABASES 配置项,将其信息修改为:

DATABASES = {

‘default‘: {

‘ENGINE‘: ‘django.db.backends.mysql‘, # 或者使用 mysql.connector.django

‘NAME‘: ‘test‘,

‘USER‘: ‘test‘,

‘PASSWORD‘: ‘test123‘,

‘HOST‘:‘localhost‘,

‘PORT‘:‘3306‘,

}

}

这里添加了中文注释,所以需要在settings.py 文件头部添加 # -*- coding: UTF-8 -*-。

2) 定义模型

① 创建APP:

Django规定,如果要使用模型,必须要创建一个app,使用以下命令创建一个app:python manage.py startapp TestModel。

② 修改 TestModel/models.py 文件:

from django.db import models

class Test(models.Model):

name = models.CharField(max_length=20)

类名代表了数据库表名,且继承了models.Model,类里面的字段代表数据表中的字段(name),数据类型则由CharField(相当于varchar)、DateField(相当于datetime), max_length 参数限定长度。

③ 在settings.py中找到INSTALLED_APPS这一项,添加:‘TestModel‘。

④ 在命令行中运行以下命令,创建数据表,表名为应用名_类名(如:TestModel_test):

view plain copy

python manage.py migrate # 创建表结构

python manage.py makemigrations TestModel # 让Django知道模型有一些变更

python manage.py migrate TestModel # 创建表结构

3) 数据库操作

添加database.py文件:

[python] view plain copy

from django.http import HttpResponse

from TestModel.models import Test

def database(request):

test = Test(name=‘Alice‘)

test.save()

return HttpResponse("<p>数据添加成功!</p>")

修改 urls.py:

view plain copy

from django.conf.urls import *

from . import view,database

urlpatterns = [

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

url(r‘^database$‘, database.database)

]

启动服务器,并在浏览器访问:127.0.0.1:8000/database。

① 添加数据

[python] view plain copy

from django.http import HttpResponse

from TestModel.models import Test

def database(request):

test = Test(name=‘Alice‘)

test.save()

return HttpResponse("<p>数据添加成功!</p>")

② 获取数据

[python] view plain copy

from django.http import HttpResponse

from TestModel.models import Test

def database(request):

# 初始化

response = ""

response1 = ""

# 通过objects这个模型管理器的all()获得所有数据行,相当于SQL中的SELECT * FROM

list = Test.objects.all()

# filter相当于SQL中的WHERE,可设置条件过滤结果

response2 = Test.objects.filter(id=1)

# 获取单个对象

response3 = Test.objects.get(id=1)

# 限制返回的数据,相当于SQL中的OFFSET 0 LIMIT 2;

Test.objects.order_by(‘name‘)[0:2]

# 数据排序

Test.objects.order_by("id")

# 上面的方法可以连锁使用

Test.objects.filter(name="Alice").order_by("id")

# 输出所有数据

for var in list:

response1 += var.name + " "

response = response1

return HttpResponse("<p>" + response + "</p>")

③ 更新数据

[python] view plain copy

from django.http import HttpResponse

from TestModel.models import Test

def database(request):

# 修改id=1的name字段再save,相当于SQL中的UPDATE

test = Test.objects.get(id=1)

test.name=‘Alice‘

test.save()

# 另一种方式

# Test.objects.filter(id=1).update(name=‘Alice)

# 修改所有的列

# Test.objects.all()..update(name=‘Google‘)

return HttpResponse("<p>数据修改成功</p>")

④ 删除数据

删除数据库中的对象只需调用该对象的delete()方法即可:

[python] view plain copy

from django.http import HttpResponse

from TestModel.models import Test

def database(request):

# 删除id=1的数据

test = Test.objects.get(id=1)

test.delete()

# 另外一种方式

# Test.objects.filter(id=1).delete()

# 删除所有数据

# Test.objects.all().delete()

return HttpResponse("<p>数据删除成功</p>")

8、Django表单

1) Get方法

① 创建一个 search.py 文件,用于接收用户的请求:

[python] view plain copy

from django.http import HttpResponse

from django.shortcuts import render_to_response

# 表单

def search_form(request):

return render_to_response(‘search_form.html‘)

# 接收请求数据

def search(request):

request.encoding=‘utf-8‘

if ‘q‘ in request.GET:

message = ‘搜索的内容为: ‘ + request.GET[‘q‘].encode(‘utf-8‘)

else:

message = ‘提交了空表单‘

return HttpResponse(message)

② 在templates中添加 search_form.html 表单:

[html] view plain copy

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title></title>

</head>

<body>

<form action="/search" method="get">

<input type="text" name="q">

<input type="submit" value="搜索">

</form>

</body>

</html>

③ 修改urls.py:

[python] view plain copy

from django.conf.urls import url

from . import view,database,search

urlpatterns = [

url(r‘^helloWorld$‘, view.helloWorld),

url(r‘^database$‘, database.database),

url(r‘^search-form$‘, search.search_form),

url(r‘^search$‘, search.search)

]

④ 启动服务器,并在浏览器访问:127.0.0.1:8000/search_form。

2) Post方法

① 在templates中添加 post.html 表单:

[python] view plain copy

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title></title>

</head>

<body>

<form action="/search-post" method="post">

{% csrf_token %}

<input type="text" name="q">

<input type="submit" value="搜索">

</form>

<p>{{ rlt }}</p>

</body>

</html>

{% csrf_token %}标签:csrf 全称是 Cross Site Request Forgery,这是Django提供的防止伪装提交请求的功能。POST 方法提交的表格,必须有此标签。

② 新建 search2.py 文件并使用 search_post 函数来处理 POST 请求:

[python] view plain copy

from django.shortcuts import render

from django.views.decorators import csrf

# 接收POST请求数据

def search_post(request):

ctx ={}

if request.POST:

ctx[‘rlt‘] = request.POST[‘q‘]

return render(request, "post.html", ctx)

③ 修改urls.py:

[python] view plain copy

from django.conf.urls import url

from . import view,database,search

urlpatterns = [

url(r‘^helloWorld$‘, view.helloWorld),

url(r‘^database$‘, database.database),

url(r‘^search-form$‘, search.search_form),

url(r‘^search$‘, search.search)

url(r‘^search-post$‘, search2.search_post)

]

④ 启动服务器,并在浏览器访问:127.0.0.1:8000/search_post。

原文地址:https://www.cnblogs.com/Python1314/p/9513339.html

时间: 2024-10-22 14:06:24

Django是Python开发最火热的一个框架!小白必学的Django框架!的相关文章

使用 Django 和 Python 开发 Web 站点(一) 安装

1 安装python 验证 2 安装django  验证django安装成功:django-admin startproject demo,就会在当前路径下生成一个demo的文件夹 进入demo文件夹,python manager.py runatserver 8080 然后浏览器 127.0.0.1:8080  就会进入. PS:Python安装模块出错(ImportError: No module named setuptools)解决方法 references:http://www.cnb

后台开发小白必学服务器框架——UDPServer

毕业后加入了一家大型的互联网公司的音视频产品部门做后台开发,其实我本身是学习自动化的,研究生的方向嵌入式系统,对互联网可是一知半解,因此能进入这样一个大公司还是很幸运的. 刚开始工作的半年应该是在上份工作最快乐的时光,那时候我们十来个人被抽调出来做好友系统,由Z组长负责.从产品到开发,大部分都是新入职员工,pm给画了一个大饼,大家都满怀憧憬.闲话少说,先介绍一下刚开始接触后台开发用到的服务器框架. 第一个接触的叫udpserver.顾名思义,就是只支持udp的服务框架.因为我们部门是做音视频产品

python +Django 搭建web开发环境初步,显示当前时间

1.python 的安装 网上很多关于django跟python 开发的资料,这块我正在实习准备用这个两个合起来搞一个基于web 的东西出来现在开始学习,写点东西记录一下心得. 开发环境是windows的,所以我们到python官网下载64位的windows操作系统的安装包: https://www.python.org/ftp/python/3.4.3/python-3.4.3.amd64.msi 这个版本直接添加了系统的环境变量非常的方面(吐槽一下各种开发环境环境变量的配置). 2.Djan

2019 年软件开发程序员必学的编程语言 Top 3

随着时间的流逝,我们将迎来新的一年,这是富有前景和挑战的一年.我们已经看到 AI 和 ML 为所有有远见的人带来了希望,尽管币圈出现了混乱,但区块链仍然是本世纪最有前景的创新技术. 自动化浪潮风靡着整个行业.不过,尽管这些有前景的技术趋势吸引了所有人的眼球,但我们不能忘了编程语言和算法本身,它们才是这些现象背后的主要驱动因素. 以下是 2019 年软件开发人员必学的 3大 编程语言 ! Python 在这个编程语言世界中,Python 绝对不是什么新生事物.它由 Guido van Rossum

Python开发入门与实战2-第一个Django项目

2.第一个Django项目 上一章节我们完成了python,django和数据库等运行环境的安装,现在我们来创建第一个django project吧,迈出使用django开发应用的第一步. 2.1.创建第一个Django项目 我们创建一个我们存放Django的工作目录,示例:C:\My Files\Python Projects 在命令提示符窗口进入到刚才创建的目录,运行运行命令: django-admin.py startproject mysite 这样会在你的当前目录下创建一个目录mysi

Window上python开发--4.Django的用户登录模块User

在搭建网站和web的应用程序时,用户的登录和管理是几乎是每个网站都必备的.今天主要从一个实例了解以下django本身自带的user模块.本文并不对user进行扩展. 主要使用原生的模块. 1.User模块基础: 在使用user 之前先import到自己的iew中.相当与我们自己写好的models.只不过这个是系统提供的models. from django.contrib.auth.models import User # 导入user模块 1.1User对象属性 User 对象属性:usern

Python开发【第二十二篇】:Web框架之Django【进阶】

Python开发[第二十二篇]:Web框架之Django[进阶] 猛击这里:http://www.cnblogs.com/wupeiqi/articles/5246483.html 博客园 首页 新随笔 联系 订阅 管理 随笔-124  文章-127  评论-205 Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻

windows上Python开发--3.Django的基础知识

最近两天下了班,没事学习了django的开发,今天做个总结.其实大家可以从百度,google搜到一些django的入门视频,初步了解一下django的框架.学习一些基础的概念和知识.本篇主要是对自己这两天做的做个总结. 1.创建第一个views.py 上一篇文章我们在windows上搭建好了django的开发环境并建立一个测试demo. 在settings.py的同级目录下新建views.py目录.并输入以下代码 from django.http import HttpResponse def

[Python] 利用Django进行Web开发

第一步:下载并安装django 首先,在Django官网上下载适合自己Python的Django版本,在安装Django前首先确定你已成功安装了python.         Windows系统下安装Django: 解压缩下载的Django压缩包,找到里面的setup.py文件,然后打开cmd命令窗口,在其对应的路径下执行如下命令: python setup.py install Linux系统下安装Django: 以此在shell中输入如下命令: $ tar xzvf Django-*.tar