Python后台开发Django的教程详解(启动)


Posted in Python onApril 08, 2019

Django版本为:2.1.7

Python的web框架,MTV思想

MVC

Model(模板文件,数据库操作)  view(视图模板文件  )controller(业务处理)

MTV

Model(模板文件,数据库操作)  template(视图模板文件) view(业务处理)

安装及访问

安装

pip3 install django

创建目录

如win:在需要创建目录的文件夹按住shift+鼠标右键打开命令行,创建dongjg工程目录

C:\Users\东东\AppData\Local\Programs\Python\Python37\Scripts\django-admin.exe startproject dongjg

开启服务

其中manage.py需对应工程目录

如果网站需要外部访问还需在工程目录的settings.py文件中设置【ALLOWED_HOSTS = ["*"]】

python manage.py runserver 0.0.0.0:8000

访问测试

http://127.0.0.1:8000/

目录介绍

工程目录结构

Python后台开发Django的教程详解(启动)

无APP的测试页面

在urls.py中添加简单的测试页面

访问:http://127.0.0.1:8000/dong

from django.contrib import admin
from django.urls import path
#新建处理方法
from django.shortcuts import HttpResponse
def homex(requestx):
 return HttpResponse("东小东【dongxiaodong】")

urlpatterns = [
 path('admin/', admin.site.urls),
 path("dong",homex),#添加URL对应关系
]

创建APP及基本操作

可以实现多个模块效果,如后台管理、用户登入等

python manage.py startapp dongapp2

APP的目录结构

migrations文件夹    #数据库操作记录(表结构修改记录)

admin.py     #Django的后台管理页

models.py   #创建数据库结构

apps.py   #当前app的配置文件

views.py   #业务代码

tests.py    #单元测试

路由对应方法(FBV):

在dongapp2/ views.py

from django.shortcuts import HttpResponse
def homex(requestx):
 return HttpResponse("东小东【dongxiaodong】")

在urls.py

from django.contrib import admin
from django.urls import path
from dongapp2 import views
urlpatterns = [
 path('admin/', admin.site.urls),
 path("dong",views.homex),#添加URL对应关系
]

路由对应类(CBV)

在dongapp2/ views.py

from django.views import View
from django.shortcuts import HttpResponse
from django.shortcuts import render #导入
class DongClass(View):
 def get(self,requestx):#当请求为get时进入
  #return HttpResponse(requestx.GET.get("gdax","无数据"))
  return render(requestx, "loginx.html", {"dongx": 12}) # 返回文件
 def post(self,requestx):#当请求为POST时进入
  return HttpResponse(requestx.POST.get("user","无数据"))

在urls.py

path("cdong",views.DongClass.as_view()),

 静态文件(static)

存放一些css样式、图片、js代码等

外部访问访问:http://127.0.0.1:8000/static/img/an.png

在setting.py中,设置静态文件存放位置

Python后台开发Django的教程详解(启动)

在模板HTML文件中使用

<link rel="stylesheet" href="static/dong.css" rel="external nofollow" >

数据获取相关

表单提交测试:

在setting.py中注释掉下面一句,即可通过表单添加【action="dong"】进行数据提交,如果不注释需参考CSR保护

Python后台开发Django的教程详解(启动)

获取访问数据

#控制台输出所有的请求信息
 for k,v in requestx.environ.items():
 print(k,"----->",v)
 print("你的设备基本信息:",requestx.environ.get("HTTP_USER_AGENT","w"))
 print("你的IP地址:",requestx.environ.get("REMOTE_ADDR","w"))
 xx=requestx.path_info #获取url,如http://127.0.0.1:8000/x1/x2/xxxxcd3,输出:/x1/x2/xxxxcd3
 methodx = requestx.method #得到访问方式,输出:GET POST
 #userx1=requestx.POST["user"] #获取POST值,如果name不存在会报错
 userx2=requestx.POST.get("user","xxx") #获取POST值,如果不存在则输出xxx

响应头设置

# 本地页面跳转
 from django.shortcuts import redirect # 导入
 retx = redirect("dong/")
 # 返回文件,并匹配值
 from django.shortcuts import render #导入
 retx= render(requestx, "loginx.html",{"dongkk1":"替换值1","dongkk2":"替换值2"}) 
 #返回字符串
 from django.shortcuts import HttpResponse
 retx=HttpResponse("东小东【dongxiaodong】")
 #设置响应头
 retx["tttt"]="tttvvvvv"
 return retx

复选框测试:

获取数据,获取数据到一个列表中

listx=requestx.POST.getlist("boxd")

复选框

<input type="checkbox" name="boxd" value="1xx" >选项1
<input type="checkbox" name="boxd" value="xx2" >选项2
……..

文件上传

fileobjx=requestx.FILES.get("dongfile")#得到文件对象
 filenamex=fileobjx.name#得到文件名
 filesize=fileobjx.size#文件大小
 f=open("static/img/"+filenamex,"wb")#创建新文件保存数据
 for datax in fileobjx.chunks():#接收数据,可以不用写.chunks(),默认会调用
 f.write(datax)
 f.close()

总结

以上所述是小编给大家介绍的Python后台开发Django的教程详解(启动),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python中使用装饰器和元编程实现结构体类实例
Jan 28 Python
Python监控主机是否存活并以邮件报警
Sep 22 Python
python实现在IDLE中输入多行的方法
Apr 19 Python
点球小游戏python脚本
May 22 Python
pytorch 调整某一维度数据顺序的方法
Dec 08 Python
Python 离线工作环境搭建的方法步骤
Jul 29 Python
python3中pip3安装出错,找不到SSL的解决方式
Dec 12 Python
Django admin 实现search_fields精确查询实例
Mar 30 Python
Virtualenv 搭建 Py项目运行环境的教程详解
Jun 22 Python
python 实现音频叠加的示例
Oct 29 Python
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
Apr 24 Python
Python tensorflow卷积神经Inception V3网络结构
May 06 Python
Python3利用print输出带颜色的彩色字体示例代码
Apr 08 #Python
Python定义函数功能与用法实例详解
Apr 08 #Python
详解Python中pandas的安装操作说明(傻瓜版)
Apr 08 #Python
Python下简易的单例模式详解
Apr 08 #Python
Python字符串的常见操作实例小结
Apr 08 #Python
Python面向对象程序设计多继承和多态用法示例
Apr 08 #Python
python仿抖音表白神器
Apr 08 #Python
You might like
PHP 数组实例说明
2008/08/18 PHP
第4章 数据处理-php数组的处理-郑阿奇
2011/07/04 PHP
探讨如何在php168_cms中提取验证码
2013/06/08 PHP
XAMPP安装与使用方法详细解析
2013/11/27 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
Laravel实现定时任务的示例代码
2017/08/10 PHP
YII框架常用技巧总结
2019/04/27 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
2020/04/04 PHP
extjs form textfield的隐藏方法
2008/12/29 Javascript
js 链式延迟执行DOME
2012/01/04 Javascript
用js控制组织结构图可以任意拖拽到指定位置
2014/01/17 Javascript
原生js三级联动的简单实现代码
2016/06/07 Javascript
简单谈谈JS数组中的indexOf方法
2016/10/13 Javascript
微信小程序 获取当前地理位置和经纬度实例代码
2016/12/05 Javascript
jQuery中 DOM节点操作方法大全
2017/10/12 jQuery
vue 项目打包通过命令修改 vue-router 模式 修改 API 接口前缀
2018/06/13 Javascript
vue基础之事件v-onclick=&quot;函数&quot;用法示例
2019/03/11 Javascript
Vue + Node.js + MongoDB图片上传组件实现图片预览和删除功能详解
2020/04/29 Javascript
vue Cli 环境删除与重装教程 - 版本文档
2020/09/11 Javascript
Python BeautifulSoup中文乱码问题的2种解决方法
2014/04/22 Python
简单的Apache+FastCGI+Django配置指南
2015/07/22 Python
Python 通配符删除文件的实例
2018/04/24 Python
Python如何使用k-means方法将列表中相似的句子归类
2019/08/08 Python
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
2019/08/30 Python
Python StringIO及BytesIO包使用方法解析
2020/06/15 Python
Python爬虫如何应对Cloudflare邮箱加密
2020/06/24 Python
python怎么自定义捕获错误
2020/06/29 Python
英国婚礼商城:Wedding Mall
2019/11/02 全球购物
面试后感谢信
2014/02/01 职场文书
《云房子》教学反思
2014/04/20 职场文书
关于感谢信的范文
2015/01/23 职场文书
2015年售后服务工作总结
2015/04/25 职场文书
如何使用CocosCreator对象池
2021/04/14 Javascript
教你怎么用Python实现GIF动图的提取及合成
2021/06/15 Python
JS实现数组去重的11种方法总结
2022/04/04 Javascript
实现GO语言对数组切片去重
2022/04/20 Golang