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调用java的Webservice示例
Mar 10 Python
web.py中调用文件夹内模板的方法
Aug 26 Python
python使用PyGame模块播放声音的方法
May 20 Python
利用Anaconda完美解决Python 2与python 3的共存问题
May 25 Python
Python常见异常分类与处理方法
Jun 04 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
Jun 09 Python
python 利用jinja2模板生成html代码实例
Oct 10 Python
python文件处理fileinput使用方法详解
Jan 02 Python
Tensorflow tensor 数学运算和逻辑运算方式
Jun 30 Python
mac安装python3后使用pip和pip3的区别说明
Sep 01 Python
python中turtle库的简单使用教程
Nov 11 Python
Python创建SQL数据库流程逐步讲解
Sep 23 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 str_pad() 将字符串填充成指定长度的字符串
2010/02/23 PHP
php计算两个日期相差天数的方法
2015/03/14 PHP
学习php设计模式 php实现桥梁模式(bridge)
2015/12/07 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
2017/08/10 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
PHP JWT初识及其简单示例
2018/10/10 PHP
jQuery 中使用JSON的实现代码
2011/12/01 Javascript
很不错的两款Bootstrap Icon图标选择组件
2016/01/28 Javascript
html5+javascript实现简单上传的注意细节
2016/04/18 Javascript
利用JS实现点击按钮后图片自动切换的简单方法
2016/10/24 Javascript
Bootstrap基本插件学习笔记之折叠(22)
2016/12/08 Javascript
通过jsonp获取json数据实现AJAX跨域请求
2017/01/22 Javascript
ES6新特性七:数组的扩充详解
2017/04/21 Javascript
javascript使用正则实现去掉字符串前面的所有0
2018/07/23 Javascript
浅谈Vue.js 中的 v-on 事件指令的使用
2018/11/25 Javascript
vue路由 遍历生成复数router-link的例子
2019/10/30 Javascript
[01:04:05]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
浅谈插入排序算法在Python程序中的实现及简单改进
2016/05/04 Python
Python判断列表是否已排序的各种方法及其性能分析
2016/06/20 Python
Python网络爬虫中的同步与异步示例详解
2018/02/03 Python
python批量修改文件编码格式的方法
2018/05/31 Python
Python实现爬取马云的微博功能示例
2019/02/16 Python
python反编译学习之字节码详解
2019/05/19 Python
使用Python三角函数公式计算三角形的夹角案例
2020/04/15 Python
canvas里面如何基于随机点绘制一个多边形的方法
2018/06/13 HTML / CSS
canvas版人体时钟的实现示例
2021/01/29 HTML / CSS
联想马亚西亚官方网站:Lenovo Malaysia
2018/09/19 全球购物
大学毕业感言
2014/01/10 职场文书
司马光教学反思
2014/02/01 职场文书
《云雀的心愿》教学反思
2014/02/25 职场文书
公司联欢会策划方案
2014/05/19 职场文书
办公室主任四风问题对照检查材料思想汇报
2014/09/28 职场文书
寻找最美乡村教师观后感
2015/06/18 职场文书
2016年校园重阳节广播稿
2015/12/18 职场文书
《世界多美呀》教学反思
2016/02/22 职场文书