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实现简易版计算器
Jun 22 Python
python实现朴素贝叶斯分类器
Mar 28 Python
Python用于学习重要算法的模块pygorithm实例浅析
Aug 16 Python
selenium+python实现自动化登录的方法
Sep 04 Python
在Pycharm中将pyinstaller加入External Tools的方法
Jan 16 Python
django基于cors解决跨域请求问题详解
Aug 06 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
Dec 10 Python
python实现俄罗斯方块小游戏
Apr 24 Python
基于Tensorflow的MNIST手写数字识别分类
Jun 17 Python
利用python 下载bilibili视频
Nov 13 Python
Pytorch数据读取之Dataset和DataLoader知识总结
May 23 Python
PYTHON使用Matplotlib去实现各种条形图的绘制
Mar 22 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
ThinkPHP CURD方法之page方法详解
2014/06/18 PHP
PHP5.5迭代生成器用法实例详解
2016/03/16 PHP
PHP简单实现二维数组赋值与遍历功能示例
2017/10/19 PHP
PHP实现负载均衡的加权轮询方法分析
2018/08/22 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
Javascript实例教程(19) 使用HoTMetal(2)
2006/12/23 Javascript
Javascript中eval函数的使用方法与示例
2007/04/09 Javascript
picChange 图片切换特效的函数代码
2010/05/06 Javascript
jQuery简易图片放大特效示例代码
2014/06/09 Javascript
js监听鼠标点击和键盘点击事件并自动跳转页面
2014/09/24 Javascript
推荐25个超炫的jQuery网格插件
2014/11/28 Javascript
浅析JavaScript中命名空间namespace模式
2016/06/22 Javascript
Bootstrap编写一个兼容主流浏览器的受众巨幕式风格页面
2016/07/01 Javascript
用AngularJS来实现监察表单按钮的禁用效果
2016/11/02 Javascript
使用纯JS代码判断字符串中有多少汉字的实现方法(超简单实用)
2016/11/12 Javascript
深入学习 JavaScript中的函数调用
2017/03/23 Javascript
vue对storejs获取的数据进行处理时遇到的几种问题小结
2018/03/20 Javascript
node中的session的具体使用
2018/09/14 Javascript
Node.js 使用axios读写influxDB的方法示例
2018/10/26 Javascript
JavaScript多种页面刷新方法小结
2019/04/04 Javascript
Vue组件间通信 Vuex的用法解析
2019/08/05 Javascript
vue router 传参获取不到的解决方式
2019/11/13 Javascript
Vue-router编程式导航的两种实现代码
2021/03/04 Vue.js
python正则表达式re模块详细介绍
2014/05/29 Python
python实现下载整个ftp目录的方法
2017/01/17 Python
css3高级选择器使用方法
2013/12/02 HTML / CSS
全球领先的全景影像品牌:Insta360
2019/08/21 全球购物
六个一活动实施方案
2014/03/21 职场文书
协议书格式
2014/04/23 职场文书
乡镇干部个人对照检查材料(群众路线)
2014/09/26 职场文书
迁户口计划生育证明
2014/10/19 职场文书
公务员群众路线心得体会
2014/11/03 职场文书
教师信息技术学习心得体会
2016/01/21 职场文书
《认识钟表》教学反思
2016/02/16 职场文书
Vue-Element-Admin集成自己的接口实现登录跳转
2021/06/23 Vue.js
Spring Boot 实现 WebSocket
2022/04/30 Java/Android