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 相关文章推荐
Python3 处理JSON的实例详解
Oct 29 Python
python基础练习之几个简单的游戏
Nov 10 Python
Python内置模块ConfigParser实现配置读写功能的方法
Feb 12 Python
python中协程实现TCP连接的实例分析
Oct 14 Python
python3实现二叉树的遍历与递归算法解析(小结)
Jul 03 Python
Python制作微信好友背景墙教程(附完整代码)
Jul 17 Python
Python处理session的方法整理
Aug 29 Python
Django1.11配合uni-app发起微信支付的实现
Oct 12 Python
python梯度下降算法的实现
Feb 24 Python
解决Keras自带数据集与预训练model下载太慢问题
Jun 12 Python
Pycharm安装第三方库失败解决方案
Nov 17 Python
让文件路径提取变得更简单的Python Path库
May 27 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取进制余数函数代码
2012/01/19 PHP
win7下memCache的安装过程(具体操作步骤)
2013/06/28 PHP
PHP 字符串长度判断效率更高的方法
2014/03/02 PHP
php判断输入是否是纯数字,英文,汉字的方法
2015/03/05 PHP
php微信公众账号开发之前五个坑(一)
2016/09/18 PHP
PHP与服务器文件系统的简单交互
2016/10/21 PHP
PHP whois查询类定义与用法示例
2019/04/03 PHP
Javascript遍历table中的元素示例代码
2014/07/08 Javascript
nodejs初步体验篇
2015/11/23 NodeJs
js判断iframe中元素是否存在的实现代码
2016/12/24 Javascript
Angular弹出模态框的两种方式
2017/10/19 Javascript
element ui 对话框el-dialog关闭事件详解
2018/02/26 Javascript
vue如何截取字符串
2019/05/06 Javascript
webpack 处理CSS资源的实现
2019/09/27 Javascript
JavaScript中的函数申明、函数表达式、箭头函数
2019/12/06 Javascript
如何配置vue.config.js 处理static文件夹下的静态文件
2020/06/19 Javascript
在vue中使用console.log无效的解决
2020/08/09 Javascript
Python实现比较两个文件夹中代码变化的方法
2015/07/10 Python
python通过socket实现多个连接并实现ssh功能详解
2017/11/08 Python
pandas 使用apply同时处理两列数据的方法
2018/04/20 Python
Python如何获得百度统计API的数据并发送邮件示例代码
2019/01/27 Python
python使用信号量动态更新配置文件的操作
2020/04/01 Python
Ubuntu中配置TensorFlow使用环境的方法
2020/04/21 Python
CSS3中动画属性transform、transition和animation属性的区别
2016/09/25 HTML / CSS
HTML5使用drawImage()方法绘制图像
2014/06/23 HTML / CSS
爱普生美国官网:Epson美国
2018/11/05 全球购物
洲际酒店集团英国官网:IHG英国
2019/07/10 全球购物
资料员的岗位职责
2013/11/20 职场文书
学校先进集体事迹材料
2014/05/31 职场文书
学院党的群众路线教育实践活动整改方案
2014/10/04 职场文书
个人务虚会发言材料
2014/10/20 职场文书
2014年护士个人工作总结
2014/11/11 职场文书
毕业生班级鉴定评语
2015/01/04 职场文书
党风廉政建设心得体会(2016最新版)
2016/01/22 职场文书
李白经典诗之一:全文无一“月”字,却句句有月
2019/07/12 职场文书
把77A收信机改造成收音机
2022/04/05 无线电