Django实例-静态访问
2019独角兽企业重金招聘Python工程师标准>>>
项目架构
MydjangoAPPmigrationsstaticjquery-3.3.1.slim.min.jstemplatesindex.htmllogin.htmladmin.pyapps.pymodels.pytests.pyurls.pyviews.pyMydjangosettings.pyurls.pywsgi.pydbsqlite3manage.py
创建项目
创建项目和项目应用
django-admin startproject Mydjango
cd Mydjango
python manage.py startapp APP
创建HTML的模版目录及模版文件 APP/templates > index.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Hello django</title><script src="/static/jquery-3.3.1.slim.min.js"></script><!--或<script src="{ % static 'jquery-3.3.1.slim.min.js' %}"></scriptsrc>-->
</head>
<body><h1>现在时间 {{ t }}</h1> <!-- 用{{变量名}}引用views函数中变量展现在前端页面-->
<script>$("h1").css("color","green")
</script>
</body>
</html>
创建HTML的模版目录及模版文件 APP/templates > login.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>登录系统</title>
</head>
<body>
<h1>登录系统</h1>
</hr><!-- POST 方式提交数据到指定 url 如果同源则可以忽略IP地址-->
<!--路径用别名方式填写,便于以后维护和变更路径-->
<form action="http://127.0.0.1:8000{% url 'reg' %}" method="post"><p>用户名<input type="text" name="user"></p><p>密   码<input type="password" name="passwd"></p><p><input type="submit"></p>{% csrf_token %} <!--安全机制,开启csrf_token时候使用-->
</form>
</body>
</html>
Mydjango/APP/static/apps.py
from django.apps import AppConfigclass APPConfig(AppConfig):name = 'APP'
Mydjango/Mydjango/settings.py
==> 注:SECRET_KEY 是唯一识别码,不可变更和复制他用,每个项目都有独立的 SECRET_KEY 码==
# -*- coding:utf8 -*-
import osINSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',# 新增项目应用'APP',
]
MIDDLEWARE = ['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware',#视图中间件安全机制,如果使用需要在模版中添加{% csrf_token %}'django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware',
]
TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [os.path.join(BASE_DIR,'templates')],# html 文件存放路径'APP_DIRS': True,'OPTIONS': {'context_processors': ['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],},},
]
# 访问别名,js jquery css等文件引入时候使用
STATIC_URL = '/static/'
# js jquery css等文件存放路径
STATICFILES_DIRS=(os.path.join(BASE_DIR,"APP/static"),)
MyDjango/APP/views.py
# -*- coding:utf8 -*-
from django.shortcuts import render,HttpResponse,redirect
import time
# Create your views here.def Show_time(requset): #页面展示和CSS测试t = time.ctime()return render(requset,"index.html",locals()) #返回指定页面内容def Article_txt(requset,num): #无命名分组正则测试# 第二个参数是正则表达式进行分组的内容# 如果有两个或以上分组传过来需要对应数量的参数# 无命名分组参数名称可自定义return HttpResponse(num)def Title_txt(requset,id): #命名分组正则测试# 第二个参数是正则表达式进行分组的内容# 如果有两个或以上分组传过来需要对应数量的参数# 命名分组参数必须和 urls.py 分组命名保持一致return HttpResponse(id)def User_login(requset): #登录提交数值测试if requset.method == "POST": #判断视图函数提交类型print(requset.POST.get("user"))print(requset.POST.get("passwd"))return redirect("/APP") #返回指定内容else:return render(requset,"login.html",locals()) #返回指定页面内容
Mydjango/Mydjango/urls.py 全局主urls
# -*- coding:utf8 -*-
from django.contrib import admin
from django.urls import path,re_path # 引入urls path模块和re_path模块
from django.urls import include # 引入url分发 include模块
from APP import views # 引入项目应用函数模块urlpatterns = [path('admin/', admin.site.urls), #系统默认path('APP/', views.Show_time), #普通URL应用path('login/', views.User_login,name="reg"), #普通URL应用,启用别名re_path(r'^article',include('APP.urls')), #正则匹配符合条件 在指定包含文件中找
]
Mydjango/Mydjango/APP/urls.py 项目应用子urls
# -*- coding:utf8 -*-from django.contrib import admin
from django.urls import path,re_path
# 引入urls path模块和re_path模块from APP import views
# 引入项目应用函数模块urlpatterns = [re_path(r'(\d{4})',views.Article_txt), #带正则表达式url应用【无命名分组】re_path(r'(?P<id>[a-z]{4})',views.Title_txt), #带正则表达式url应用【命名分组】#正则表达式进行分组,分组内容是后置函数的参数#如果两个或多个分组,同样用括号括起来传给后置函数做为参数# ?<名称> 的形式声明分组名称
]
项目测试
启动项目
python manage.py runserver 8000
访问测试(path普通用法)
http://127.0.0.1:8000/APP/
访问测试(re_path正则用法)
http://127.0.0.1:8000/article/1234
# 无命名分组
http://127.0.0.1:8000/article/abcd
# 命名分组
模拟登陆测试
http://127.0.0.1:8000/login/
转载于:https://my.oschina.net/zhaojunhui/blog/1934174
Django实例-静态访问相关推荐
- Django之静态文件
在介绍分布式路由之前,先介绍下静态文件,比如图片,音视频文件,这些都属于静态文件.以百度首页为例: 大部分都是静态文件,以图片为例,浏览器加载img标签,解读里面的src属性,对src里面的地址发ht ...
- python 私有和保护成员变量如何实现?—— 单下划线 开始的成员变量叫做保护变量,意思是只有类实例和子类实例能访问到这些变量; 双下划线 开始的是私有成员,意思是只有类对象自己能访问...
默认情况下,Python中的成员函数和成员变量都是公开的(public),在python中没有类似public,private等关键词来修饰成员函数和成员变量. 在python中定义私有变量只需要在变 ...
- 怎么用python画心_python怎么画心Python的类实例属性访问规则
一般来说,在Python中,类实例属性的访问规则算是比较直观的. 但是,仍然存在一些不是很直观的地方,特别是对C++和Java程序员来说,更是如此. 在这里,我们需要明白以下几个地方: 1.Pytho ...
- django处理静态文件
静态文件指的是js css 还有图片这些,配置方法如下 1. 在设置文件(settings.py)中,installed_apps中添加 django.contrib.staticfiles 然后设置 ...
- 不应该通过类实例来访问静态成员
在用类实现接口时,用实例化的类名.接口的静态成员,报错:不应该通过类实例来访问静态成员,通过接口名.静态成员访问.
- Django配置Https访问
Django配置Https访问 问题描述 相关知识普及 什么是http? 什么是https? http vs https 问题解决 问题分析 解决方案 1 解决方案2 实际操作 验证 重启服务 请求验 ...
- nginx简单创建ssl配置https,实现https静态访问图片和页面
最重要的两点:1.配置nginx开放端口80和443 2.找到nginx对应的文件地址(默认地址为/usr/local/nginx) 1.通过openssl生成rsa非对称密钥 创建一个文件夹,推荐在 ...
- python怎么访问实例变量_python实例怎么访问类变量
python实例怎么访问类变量 发布时间:2020-12-14 09:13:14 来源:亿速云 阅读:102 作者:小新 这篇文章主要介绍了python实例怎么访问类变量,具有一定借鉴价值,需要的朋友 ...
- Python Django 配置静态资源访问(settings配置)
最新文章
- 如何自己搞一个维基百科?
- 阿里云马劲:保证云产品持续拥有稳定性的实践和思考\n
- 实时音视频技术的演进与应用
- Java网页开发中model实现Serializable接口的原因
- javascript-引入-函数的定义与使用-多值传参-ao对象
- java corsa_JAVA CORSA休闲车,缔造“城市 生活 元素”
- Jmeter插件安装及使用
- vscode解决方案 关闭源代码管理
- 中南大学网络教育计算机考试答案,2015年6月中南大学网络教育课程考试《计算机组成原理》复习题及参考答案.pdf...
- 传奇DBC2000安装及配置图文详细教程
- RuntimeError: Exporting the operator var to ONNX opset version 11 is not supported. Please open a bu
- 通信原理及系统系列18—— 锁相环(鉴相器分析_1)
- 新高考如何选科?职引教你一招简单又直接的方法
- Dart语言中的Isolate
- 小程序获取用户信息相关 获取头像名称 微信用户
- 知识转移策略的跨域故障诊断
- c语言指针near,near指针和far指针
- unity3d 手游端一些优化技巧
- USDTPAY支付通道全行业可接入,安全稳定无痕快捷
- 基于JAVA大学生健康电子档案系统计算机毕业设计源码+系统+lw文档+部署