Python后台开发Django的教程详解(启动)

作者:东小东 时间:2023-03-25 19:00:10 

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的教程详解(启动)网站的支持!

来源:https://www.cnblogs.com/dongxiaodong/p/10496525.html

标签:python,django
0
投稿

猜你喜欢

  • 网址导航的组织方法

    2008-09-27 12:35:00
  • Python torch.flatten()函数案例详解

    2022-11-11 16:04:27
  • opencv实现图像平移效果

    2022-09-30 00:22:06
  • js求一组数中的最大数

    2008-04-10 12:00:00
  • Python读取Excel表格,并同时画折线图和柱状图的方法

    2023-12-25 07:11:27
  • IIS 301重定向与程序代码实现301重定向的差别

    2022-04-16 07:45:23
  • 将Django框架和遗留的Web应用集成的方法

    2023-04-11 11:18:52
  • 10款最好的Python开发编辑器

    2022-02-14 07:35:28
  • 如何用Python对数学函数进行求值、求偏导

    2023-10-13 04:58:01
  • Python 中的函数装饰器和闭包详解

    2021-08-03 17:52:40
  • vue组件实现可搜索下拉框扩展

    2024-05-28 15:41:57
  • Python3时间转换之时间戳转换为指定格式的日期方法详解

    2023-02-12 09:41:18
  • Python绘图Matplotlib之坐标轴及刻度总结

    2023-10-01 15:56:39
  • python编程通过蒙特卡洛法计算定积分详解

    2022-05-31 10:45:01
  • Oracle的数据字典技术简析

    2010-07-20 13:03:00
  • Python闭包之返回函数的函数用法示例

    2022-12-09 18:50:41
  • mysql创建Bitmap_Join_Indexes中的约束与索引

    2024-01-15 18:25:50
  • python计算时间差的方法

    2023-05-19 16:08:23
  • 30分钟就入门的正则表达式基础教程

    2024-05-13 10:37:40
  • Django如何使用asyncio协程和ThreadPoolExecutor多线程

    2022-06-22 11:43:34
  • asp之家 网络编程 m.aspxhome.com