Django基础知识与基本应用入门教程


Posted in Python onJuly 20, 2018

本文实例讲述了Django基础知识与基本应用。分享给大家供大家参考,具体如下:
MVC模式和MTV模式

MVC model view controller

MTV model templates view controller

Django的MTV模式本质是各组件之间为了保持松耦合关系,Django的MTV分别代表:

       Model(模型):负责业务对象与数据库的对象(ORM)
       Template(模版):负责如何把页面展示给用户
       View(视图):负责业务逻辑,并在适当的时候调用Model和Template

此外,Django还有一个url分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template。

Django基础知识与基本应用入门教程

Django基本命令

创建一个Django项目

django-admin startproject project_name

创建项目应用

python manage.py startapp appName

启动Django项目

python manage.py runserver IP PORT  #默认是8000

查看django版本信息

import django
print(django.VERSION)

创建一个mysite项目

django-admin.py startproject mysite

当前目录下会生成一个mysite项目目录,结构如下:

Django基础知识与基本应用入门教程

manage.py是Django项目里的工具,通过它可以调用django shell和数据库等。

settings.py是项目的默认设置文件,包括数据库的信息,调试标志以及其他工作的变量。

urls.py是负责把url模式映射到应用程序。

项目与应用:

一个项目可以有多个应用

一个应用可以被多个项目拥有

在mysite目录下创建应用,比如blog

python manage.py startapp blog

Django基础知识与基本应用入门教程

生成如上目录结构。

models:与数据库交互的文件
views:存放视图函数的

启动django项目

python manage.py runserver 8080

这样项目就能启动了,访问http://127.0.0.1:8080即可访问。

注意csrf保护机制

在mysite项目目录下的settings配置文件中,中间件MIDDLEWARE设置中,有一条
django.middleware.csrf.CsrfViewMiddleware一行,新手练习时可以先将其注释掉。

下面我在mysite这个项目写一个练手blog应用,注册和登录。

下面是blog应用中views.py的代码:

from django.shortcuts import render,HttpResponse #导入render是为了返回渲染后的网页,HttpResponse是可以返回字符串
import json
# Create your views here.
def login(request):
  if request.method=="POST":#指定格式为POST
    print(request.POST)
    username=request.POST.get("user")
    password=request.POST.get("pwd")
    f=open("a.txt","r")
    # data=f.read()
    dic=json.load(f)
    if username in dic and password==dic[username]:
      return HttpResponse("登录成功") #返回字符串内容
  return render(request,"login.html") #返回网页内容
def auth(request):
  if request.method=="POST":
    # print(request.POST)
    username=request.POST.get("user")
    password=request.POST.get("pwd")
    info={}
    info[username]=password
    print(info)
    f=open("a.txt","a")
    data=json.dump(info,f)
    f.close()
  return render(request,"auth.html")

上面的注册机制写的比较简单,只是为了测试一下django的使用。

下面是mysite目录下的urls.py代码

from django.conf.urls import url
from django.contrib import admin
from blog import views
urlpatterns = [
  url(r'^admin/', admin.site.urls),
  url(r'login',views.login),
  url(r'auth',views.auth),#login为浏览器url地址栏IP:PORT/后面的内容,对应一个视图函数
]

下面为两个html页面

下面是login.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<h2>Django登录页面</h2>
<form action="http://127.0.0.1:8900/login/" method="post">
  <p>姓名<input type="text" name="user"></p>
  <p>密码<input type="password" name="pwd"></p>
  <p>
    <input type="submit">
  </p>
</form>
</body>
</html>

下面是auth.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<h2>Django注册页面</h2>
<form action="http://127.0.0.1:8900/auth" method="post">
  <p>姓名<input type="text" name="user"></p>
  <p>密码<input type="password" name="pwd"></p>
  <p>
    <input type="submit">
  </p>
</form>
</body>
</html>

下图左面为整个目录结构,右面为settings配置文件中需要注意的位置,该项标识了模板目录,否则会找不到。

Django基础知识与基本应用入门教程

如上配置之后,在templates目录内写好对应的两个html页面之后,通过python manage.py runserver 8900命令启动项目,访问相应ip 端口 等就可以访问了。

希望本文所述对大家基于Django框架的Python程序设计有所帮助。

Python 相关文章推荐
Hadoop中的Python框架的使用指南
Apr 22 Python
windows下python安装paramiko模块和pycrypto模块(简单三步)
Jul 06 Python
python实现简单中文词频统计示例
Nov 08 Python
Python面向对象程序设计之私有属性及私有方法示例
Apr 08 Python
一行python实现树形结构的方法
Aug 09 Python
pyenv与virtualenv安装实现python多版本多项目管理
Aug 17 Python
在django-xadmin中APScheduler的启动初始化实例
Nov 15 Python
在pytorch中对非叶节点的变量计算梯度实例
Jan 10 Python
Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
May 11 Python
Python读写csv文件流程及异常解决
Oct 20 Python
pytorch 运行一段时间后出现GPU OOM的问题
Jun 02 Python
Python自动化爬取天眼查数据的实现
Jun 15 Python
opencv python 2D直方图的示例代码
Jul 20 #Python
Linux下python制作名片示例
Jul 20 #Python
Python爬虫的两套解析方法和四种爬虫实现过程
Jul 20 #Python
使用python脚本实现查询火车票工具
Jul 19 #Python
Python 判断文件或目录是否存在的实例代码
Jul 19 #Python
Flask框架Jinjia模板常用语法总结
Jul 19 #Python
python一行sql太长折成多行并且有多个参数的方法
Jul 19 #Python
You might like
一些关于PHP的知识
2006/11/17 PHP
PHP 翻页 实例代码
2009/08/07 PHP
PHP执行zip与rar解压缩方法实现代码
2010/12/05 PHP
vs中通过剪切板循环来循环粘贴不同内容
2011/04/30 PHP
php求正负数数组中连续元素最大值示例
2014/04/11 PHP
yii2.0整合阿里云oss删除单个文件的方法
2017/09/19 PHP
JScript中的&quot;this&quot;关键字使用方式补充材料
2007/03/08 Javascript
网页右键ie不支持event.preventDefault和event.returnValue (需要加window)
2013/02/22 Javascript
php 中序列化和json使用介绍
2013/07/08 Javascript
node.js中RPC(远程过程调用)的实现原理介绍
2014/12/05 Javascript
jQuery功能函数详解
2015/02/01 Javascript
BootStrap Table对前台页面表格的支持实例讲解
2016/12/22 Javascript
详解nodejs微信jssdk后端接口
2017/05/25 NodeJs
JavaScript实现移动端轮播效果
2017/06/06 Javascript
jQuery实现的简单拖拽功能示例【测试可用】
2018/08/14 jQuery
javascript随机变色实例代码
2019/10/15 Javascript
js事件机制----捕获与冒泡机制实例分析
2020/05/22 Javascript
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
2020/05/26 Javascript
js 执行上下文和作用域的相关总结
2021/02/08 Javascript
Python写的Discuz7.2版faq.php注入漏洞工具
2014/08/06 Python
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
2015/05/22 Python
对python自动生成接口测试的示例讲解
2018/11/30 Python
Django项目中实现使用qq第三方登录功能
2019/08/13 Python
python numpy数组复制使用实例解析
2020/01/10 Python
Python count函数使用方法实例解析
2020/03/23 Python
python爬虫scrapy框架的梨视频案例解析
2021/02/20 Python
size?德国官方网站:英国伦敦的球鞋精品店
2018/03/17 全球购物
成人大专自我鉴定范文
2013/10/19 职场文书
大学自主招生推荐信
2014/05/10 职场文书
制冷与空调专业毕业生推荐信
2014/07/07 职场文书
个人租房协议书(范本)
2014/10/14 职场文书
公司内部升职自荐信
2015/03/27 职场文书
酒店财务经理岗位职责
2015/04/08 职场文书
MySQL表锁、行锁、排它锁及共享锁的使用详解
2022/04/02 MySQL
阿里云 Windows server 2019 配置FTP
2022/04/28 Servers
搭建Yolov5服务器
2022/04/30 Servers