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实现图片批量剪切示例
Mar 25 Python
Django使用详解:ORM 的反向查找(related_name)
May 30 Python
Python的argparse库使用详解
Oct 09 Python
python实现简易数码时钟
Feb 19 Python
tensor和numpy的互相转换的实现示例
Aug 02 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
Aug 06 Python
pytorch 共享参数的示例
Aug 17 Python
Python django框架开发发布会签到系统(web开发)
Feb 12 Python
python函数调用,循环,列表复制实例
May 03 Python
python基于tkinter实现gif录屏功能
May 19 Python
Python开发五子棋小游戏
Apr 28 Python
如何利用python实现Simhash算法
Jun 28 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
浅析SVN常见问题及解决方法
2013/06/21 PHP
手把手教你打印出PDF(关于fpdf的简单应用)
2013/06/25 PHP
ThinkPHP模板判断输出Empty标签用法详解
2014/06/30 PHP
记录一次排查PHP脚本执行卡住的问题
2016/12/27 PHP
javascript中利用数组实现的循环队列代码
2010/01/24 Javascript
js 字符串转化成数字的代码
2011/06/29 Javascript
js单向链表的具体实现实例
2013/06/21 Javascript
jQuery插件jQuery-JSONP开发ajax调用使用注意事项
2013/11/22 Javascript
原生js和jQuery随意改变div属性style的名称和值
2014/10/22 Javascript
javascript操作字符串的原生方法
2014/12/22 Javascript
JS实现统计复选框选中个数并提示确定与取消的方法
2015/07/01 Javascript
再JavaScript的jQuery库中编写动画效果的指南
2015/08/13 Javascript
js+css实现的圆角边框TAB选项卡滑动门代码分享(2款)
2015/08/26 Javascript
深入剖析JavaScript中的函数currying柯里化
2016/04/29 Javascript
ES6学习笔记之正则表达式和字符串正则方法分析
2017/04/25 Javascript
JavaScript实现选中文字提示新浪微博分享效果
2017/06/15 Javascript
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
2017/06/19 Javascript
javaScript手机号码校验工具类PhoneUtils详解
2017/12/08 Javascript
vue-cli3.X快速创建项目的方法步骤
2019/11/14 Javascript
Javascript confirm多种使用方法解析
2020/09/25 Javascript
详解vue修改elementUI的分页组件视图没更新问题
2020/11/13 Javascript
React服务端渲染原理解析与实践
2021/03/04 Javascript
Python创建文件和追加文件内容实例
2014/10/21 Python
Python实现将照片变成卡通图片的方法【基于opencv】
2018/01/17 Python
解决win64 Python下安装PIL出错问题(图解)
2018/09/03 Python
python 画函数曲线示例
2019/12/04 Python
pytorch读取图像数据转成opencv格式实例
2020/06/02 Python
使用Python操作MySQL的小技巧
2020/09/10 Python
python time.strptime格式化实例详解
2021/02/03 Python
试述DBMS的主要功能
2016/11/13 面试题
中专毕业自我鉴定
2013/10/16 职场文书
高中打架检讨书
2014/02/13 职场文书
小学生新年寄语
2014/04/03 职场文书
乡镇精神文明建设汇报材料
2014/08/15 职场文书
大学生社会服务心得体会
2016/01/22 职场文书
再读《皇帝的新衣》的读后感悟!
2019/08/07 职场文书