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实现随机密码字典生成器示例
Apr 09 Python
python利用正则表达式提取字符串
Dec 08 Python
Python实现图片转字符画的示例代码
Aug 21 Python
pip matplotlib报错equired packages can not be built解决
Jan 06 Python
python绘制漏斗图步骤详解
Mar 04 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
Mar 11 Python
python利用selenium进行浏览器爬虫
Apr 25 Python
python应用Axes3D绘图(批量梯度下降算法)
Mar 25 Python
python+adb命令实现自动刷视频脚本案例
Apr 23 Python
将tf.batch_matmul替换成tf.matmul的实现
Jun 18 Python
宝塔面板成功部署Django项目流程(图文)
Jun 22 Python
python 模块导入问题汇总
Feb 01 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中的implements 使用
2017/06/13 PHP
解决laravel中日志权限莫名变成了root的问题
2019/10/17 PHP
jquery简单瀑布流实现原理及ie8下测试代码
2013/01/23 Javascript
Event altKey,ctrlKey,shiftKey属性解析
2013/12/18 Javascript
如何让你的Lightbox支持滚轮缩放及Base64图片
2014/12/04 Javascript
浅谈轻量级js模板引擎simplite
2015/02/13 Javascript
js限制文本框只能输入整数或者带小数点的数字
2015/04/27 Javascript
整理Javascript数组学习笔记
2015/11/29 Javascript
理解jquery事件冒泡
2016/01/03 Javascript
jQuery插件Validation快速完成表单验证的方式
2016/07/28 Javascript
Google 地图叠加层实例讲解
2016/08/06 Javascript
JS中检测数据类型的几种方式及优缺点小结
2016/12/12 Javascript
Vue-Router实现页面正在加载特效方法示例
2017/02/12 Javascript
xmlplus组件设计系列之下拉刷新(PullRefresh)(6)
2017/05/03 Javascript
vue mounted组件的使用
2018/06/18 Javascript
JavaScript设计模式之建造者模式实例教程
2018/07/02 Javascript
ES6中的迭代器、Generator函数及Generator函数的异步操作方法
2019/05/12 Javascript
vue获取验证码倒计时组件
2019/08/26 Javascript
JS 遍历 json 和 JQuery 遍历json操作完整示例
2019/11/11 jQuery
[02:59]DOTA2完美大师赛主赛事第三日精彩集锦
2017/11/25 DOTA
用Python实现一个简单的能够发送带附件的邮件程序的教程
2015/04/08 Python
python生成器generator用法实例分析
2015/06/04 Python
利用PyInstaller将python程序.py转为.exe的方法详解
2017/05/03 Python
django框架模板中定义变量(set variable in django template)的方法分析
2019/06/24 Python
Python代码太长换行的实现
2019/07/05 Python
给你一面国旗 教你用python画中国国旗
2019/09/24 Python
python print 格式化输出,动态指定长度的实现
2020/04/12 Python
5行Python代码实现图像分割的步骤详解
2020/05/25 Python
值得收藏的HTML5资源(学习html5的朋友可以收藏下)
2010/07/20 HTML / CSS
整理HTML5中支持的URL编码与字符编码
2016/02/23 HTML / CSS
美国家庭鞋店:Shoe Sensation
2019/09/27 全球购物
销售代理协议书
2014/09/30 职场文书
2015年度党员自我评价范文
2015/03/03 职场文书
2016年寒假社会实践活动总结
2015/10/10 职场文书
在Centos 8.0中安装Redis服务器的教程详解
2022/03/21 Redis
MySQL提升大量数据查询效率的优化神器
2022/07/07 MySQL