浅谈Django框架
- 一、Django简介
- 二、Django的特点
- 三、Django项目目录
- 四、Django基本命令
- 五、Django表单
一、Django简介
- Python下有多款不同的 Web 框架,Django是最有代表性的一种。许多成功的网站和APP都基于Django。
- Django是一个开源的Web应用框架,由Python写成。
- Django采用了MVC的软件设计模式,即模型M,视图V和控制器C。
二、Django的特点
- 强大的数据库功能:用python的类继承,几行代码就可以拥有一个动态的数据库操作API,如果需要也能执行SQL语句。
- 自带的强大的后台功能:几行代码就让网站拥有一个强大的后台,轻松管理内容。
- 优雅的网址:用正则匹配网址,传递到对应函数。
- 模板系统:强大,易扩展的模板系统,设计简易,代码和样式分开设计,更易管理。
- 缓存系统:与memcached或其它缓存系统联用,表现更出色,加载速度更快。
- 国际化:完全支持多语言应用,允许你定义翻译的字符,轻松翻译成不同国家的语言。
三、Django项目目录
- urls.py:网址入口,关联到对应的views.py中的一个函数(或generic类),访问网址就对应一个函数。
- forms.py:表单,用户在浏览器上输入数据提交,对数据的验证工作以及输入框的生成等工作,也可以不使用。
- templates文件夹:views.py中的函数渲染templates中的html模板,得到动态内容的网页,可以用缓存来提高速度。
- admin.py:后台,可以用很少的代码就拥有一个强大的后台。
- settings.py:Django 的配置文件,如 DEBUG 的开关,静态文件的位置等。
- views.py:处理用户发出的请求,与urls.py对应,
通过渲染templates中的网页可以将显示内容,如登陆后的用户名,用户请求的数据等输出到网页。 - models.py:与数据库操作相关,存入或读取数据时用到,用不到数据库时可以不使用。
四、Django基本命令
- 新建一个项目
django-admin startproject project-name
- 新建一个APP
python manage.py startapp app-name
或
django-admin.py startapp app-name
- 启动服务器
python manage.py runserver 0.0.0.0:8000
或
python manage.py runserver
五、Django表单
1. Get方法
(1)创建一个 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)
(2)在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>
(3)修改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)
]
(4)启动服务器,并在浏览器访问:127.0.0.1:8000/search_form。
2. Post方法
(1)在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>
(2)新建 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)
(3)修改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)
]
(4)启动服务器,并在浏览器访问:127.0.0.1:8000/search_post。