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代码更快运行的5种方法
Jun 21 Python
python3下实现搜狗AI API的代码示例
Apr 10 Python
pandas删除指定行详解
Apr 04 Python
Python中利用LSTM模型进行时间序列预测分析的实现
Jul 26 Python
centos7之Python3.74安装教程
Aug 15 Python
pytorch AvgPool2d函数使用详解
Jan 03 Python
基于python实现语音录入识别代码实例
Jan 17 Python
pytorch 状态字典:state_dict使用详解
Jan 17 Python
Python使用matplotlib绘制圆形代码实例
May 27 Python
Python3交互式shell ipython3安装及使用详解
Jul 11 Python
python分布式爬虫中消息队列知识点详解
Nov 26 Python
python 发送邮件的示例代码(Python2/3都可以直接使用)
Dec 03 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语法(3)
2006/10/09 PHP
Chrome Web App开发小结
2014/09/04 PHP
Mac OS下配置PHP+MySql环境
2015/02/25 PHP
PHP使用Face++接口开发微信公众平台人脸识别系统的方法
2015/04/17 PHP
php操作memcache缓存方法分享
2015/06/03 PHP
php中用unset销毁变量并释放内存
2020/05/10 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
2020/09/17 PHP
javascript 简练的几个函数
2009/08/29 Javascript
我遇到的参数传递中 双引号单引号嵌套问题
2010/02/11 Javascript
js 实现日期灵活格式化的小例子
2013/07/14 Javascript
一个JS的日期格式化算法示例
2013/07/31 Javascript
JavaScript中prototype为对象添加属性的误区介绍
2013/10/15 Javascript
js中定义一个变量并判断其是否为空的方法
2014/05/13 Javascript
jQuery插件EnPlaceholder实现输入框提示文字
2015/06/05 Javascript
JS实现可拖曳、可关闭的弹窗效果
2015/09/26 Javascript
javascript+HTML5自定义元素播放焦点图动画
2016/02/21 Javascript
如何利用Promises编写更优雅的JavaScript代码
2016/05/17 Javascript
jQuery扩展+xml实现表单验证功能的方法
2016/12/25 Javascript
jQuery+ThinkPHP+Ajax实现即时消息提醒功能实例代码
2017/03/21 jQuery
vue2的todolist入门小项目的详细解析
2017/05/11 Javascript
JS 60秒后重新发送验证码的实例讲解
2017/07/26 Javascript
vue2.0 移动端实现下拉刷新和上拉加载更多的示例
2018/04/23 Javascript
Vue中的scoped实现原理及穿透方法
2018/05/15 Javascript
js运算符的一些特殊用法
2018/07/29 Javascript
layui的布局和表格的渲染以及动态生成表格的方法
2019/09/18 Javascript
用jQuery实现抽奖程序
2020/04/12 jQuery
Python是编译运行的验证方法
2015/01/30 Python
python利用re,bs4,requests模块获取股票数据
2019/07/29 Python
解决python运行效率不高的问题
2020/07/20 Python
python开根号实例讲解
2020/08/30 Python
成龙洗发水广告词
2014/03/14 职场文书
家居装修公司创业计划书范文
2014/03/20 职场文书
商品陈列协议书
2014/09/29 职场文书
留学推荐信怎么写
2015/03/26 职场文书
2016年优秀共青团员事迹材料
2016/02/25 职场文书
一文搞懂Golang 时间和日期相关函数
2021/12/06 Golang