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列表操作之extend和append的区别实例分析
Jul 28 Python
Python+Opencv识别两张相似图片
Mar 23 Python
关于python的bottle框架跨域请求报错问题的处理方法
Mar 19 Python
详解Python中类的定义与使用
Apr 11 Python
深入分析python中整型不会溢出问题
Jun 18 Python
python 限制函数执行时间,自己实现timeout的实例
Jan 12 Python
Django学习笔记之为Model添加Action
Apr 30 Python
python标记语句块使用方法总结
Aug 05 Python
Python协程 yield与协程greenlet简单用法示例
Nov 22 Python
在matplotlib中改变figure的布局和大小实例
Apr 23 Python
Python实现PS滤镜中的USM锐化效果
Dec 04 Python
python神经网络ResNet50模型
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编程中字符串处理的5个技巧小结
2007/11/13 PHP
php cookie名使用点号(句号)会被转换
2014/10/23 PHP
PHP版本如何选择?应该使用哪个版本?
2015/05/13 PHP
golang 调用 php7详解及实例
2017/01/04 PHP
jQuery数据缓存功能的实现思路及简单模拟
2013/05/27 Javascript
鼠标经过显示二级菜单js特效
2013/08/13 Javascript
jQuery绑定事件不执行但alert后可以正常执行
2014/06/03 Javascript
jQuery计算文本框字数及限制文本框字数的方法
2016/03/01 Javascript
jQuery实现选项联动轮播效果【附实例】
2016/04/19 Javascript
JavaScript类的写法
2016/09/17 Javascript
通过BootStrap-select插件 js jQuery控制select属性变化
2017/01/03 Javascript
使用jQuery的load方法设计动态加载及解决被加载页面js失效问题
2017/03/01 Javascript
javascript中mouseenter与mouseover的异同
2017/06/06 Javascript
浅析JS中常用类型转换及运算符表达式
2017/07/23 Javascript
vue router学习之动态路由和嵌套路由详解
2017/09/21 Javascript
对Vue.js之事件的绑定(v-on: 或者 @ )详解
2018/09/15 Javascript
vue $set 给数据赋值的实例
2019/11/09 Javascript
nuxt配置通过指定IP和端口访问的实现
2020/01/08 Javascript
Python 2.7.x 和 3.x 版本的重要区别小结
2014/11/28 Python
详解python中的json和字典dict
2018/06/22 Python
python看某个模块的版本方法
2018/10/16 Python
利用python提取wav文件的mfcc方法
2019/01/09 Python
Python3按一定数据位数格式处理bin文件的方法
2019/01/24 Python
Python集成开发工具Pycharm的安装和使用详解
2020/03/18 Python
Pycharm中配置远程Docker运行环境的教程图解
2020/06/11 Python
基于html5 canvas做批改作业的小插件
2020/05/20 HTML / CSS
世界上最大的街头服饰网站:Karmaloop
2017/02/04 全球购物
美国环保婴儿用品公司:The Honest Company
2017/11/23 全球购物
巴西手表购物网站:eclock
2019/03/19 全球购物
碧欧泉Biotherm加拿大官方网站:法国高端护肤品牌
2019/10/18 全球购物
保加利亚运动鞋购物网站:SneakerStudio.bg
2020/12/23 全球购物
质量承诺书范文
2014/03/27 职场文书
验房委托书
2014/08/30 职场文书
县政府领导班子“四风”方面突出问题整改措施
2014/09/23 职场文书
2015年敬老院工作总结
2015/05/18 职场文书
前端JS获取URL参数的4种方法总结
2022/04/05 Javascript