分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

web前端【第十五篇】popup简单使用(弹出页面)

发布时间:2023-09-06 01:43责任编辑:胡小海关键词:前端

一、首先说一下自执行函数

1. 立即执行函数是什么?也就是匿名函数

立即执行函数就是

  1. 声明一个匿名函数
  2. 马上调用这个匿名函数

2、popup的举例

点击,弹出一个新的窗口。保存完事,页面不刷新数据就返回了。(点击admin的+,弹出的框就是用popup来做的)

具体操作步骤:

1、urls.py

urlpatterns = [ ???url(r‘^admin/‘, admin.site.urls), ???url(r‘^index/‘, views.index), ???url(r‘^pop/‘, views.pop),]

2、views.py

def index(request): ???return render(request,"index.html")def pop(request): ???if request.method=="GET": ???????return render(request,"pop.html") ???else: ???????user = request.POST.get("user") ???????print(user) ???????return render(request,"pop_response.html",{"user":user})

3、templaates

index.html

<body><h1 id = "a">无所谓</h1><a href="#" onclick=popUp("http://www.baidu.com")>点我点我</a><script> ???????function xxxpopupCallback(text) { ???????????document.getElementById(‘a‘).innerHTML = text; ??//找到标签吧值替换成用户传进来的值 ???????} ???????function popUp(url) { ???????????window.open( ‘/pop/‘, "n1","status=1, height:500, width:600, toolbar=0, resizeable=0");{# ???????????window.open( url, "n1","status=1, height:500, width:600, toolbar=0, resizeable=0");#} ???????}


分析:
  index页面的第一个参数就是url,写什么路径就看到什么页面
  n1:弹出窗口的名字,定死了就弹出一个
  ‘/pop/‘,‘/pop/‘ 一个url弹出一个
  如果有两个+最多弹出两个框

</script></body>

pop.html

<body><form action="" method="post"> ???{% csrf_token %} ???<input type="text" name="user"> ???<input type="submit" value="提交"></form></body>

pop_response.html

<h1>正在关闭</h1><script> ?????(function () { ???????????// 可以调用popup原页面的一个函数, ???????????opener.xxxpopupCallback("{{ user }}"); ???xxxpopupCallback是自定义的函数 ???????????window.close(); ?//传完数据之后自动关闭 ???????})()</script>

运行结果截图

3、Form时时更新的两种方式

在ModelForm需要知道:

from app03 import modelsfrom django.forms import ModelFormclass UserForm(ModelForm): ???class Meta: ???????model = models.UserInfo ???????fields = "__all__"它的内部找到类之后,如果 类里的字段是FK,就会自动生成ModelChoiceField ????????????????????如果是M2M ,就会自动生成ModelMutilChoiceField

4、isintance和type

class Foo(object): ???passclass Bar(Foo): ???passobj = Bar()# isinstance用于判断,对象是否是指定类的实例 (错误的)# isinstance用于判断,对象是否是指定类或其派生类的实例# isinstance不精准print(isinstance(obj,Foo),id(obj)) ??#True 35558624print(isinstance(obj,Bar),id(obj)) ??#True 35558624print(type(obj)==Foo) ?#Falseprint(type(obj)==Bar) ?#True# 思考?# ????对象,判断是否是某个类型?# ????????如果没有继承关系用isinstance, ?# ????????如果有继承关系可以用type, ?

5、json的补充

import jsonv = {"name":"海燕","age":22}str_dic = json.dumps(v)print(json.dumps(v),type(str_dic)) ?#{"name": "\u6d77\u71d5", "age": 22}<class ‘str‘>print(json.dumps(v,ensure_ascii=False)) ?#{"name": "海燕", "age": 22}

6、反射举例

from 反射.settings import DB_PATHdef func(): ???# 导入文件 ???# 反射 ???# DB_PATH = "db.mysql.MySQLHelper" ???module_path,cls_name = DB_PATH.rsplit(‘.‘,maxsplit=1) ???# 以字符串的形式导入模块 ???# from db import mysql ???import importlib ???module_obj = importlib.import_module(module_path) ???# 去模块中导入类 ???cls = getattr(module_obj,cls_name) ???# 类实例化 ???obj = cls() ???obj.fetchone()if __name__ == ‘__main__‘: ???func()复制代码

6、知识点大致整理

- 单例模式 ???????- 文件导入 ???????- 类方法 ???- 反射 ???????- 导入一个模块importlib,利用反射找到类 ???????- getattr ???????????- 面向对象 ???????- 遇到封装数据时、;字典 ???????????????????????????自己写一个类,封装对象来做 ???????- 遇到循环数据时:字典,元组,列表,可迭代对象(__iter__) ???????- 遇到后台对数据加工在页面中循环展示,可以通过yield来做(边循环边生产)。也可以先处理再循环 ???- request.GET ???????- ?name=alex&age=18&age=19 ??#如果遇到这样的。 ???????- QueryDict类型 = {"name":["alex",],"age":[18,19]} ???????- 要想被修改 .mutable = True ?????????params["hobby"] = "鲁宁" ?????????QueryDict类型 = {"name":["alex",],"age":[18,19],hobby:["鲁宁"],} ???????????????????params["hobby"] = ["鲁宁"] ?#传进去的是一个列表套列表 ?????????QueryDict类型 = {"name":["alex",],"age":[18,19],hobby:[["鲁宁"]],} ???????????- params.setlist("hobby",["鲁宁"]) ?#直接把本身的元素传进去 ?????????QueryDict类型 = {"name":["alex",],"age":[18,19],hobby:["鲁宁"],} ???????????- 类 ???????- 组件 ???????????- StarkSite,单利模式,用于保存Model类和处理这个类增删改查的配置类的对象 ???????????- StarkConfig:处理增删改查的基类 ???????????- ChangeList:将列表页面的功能封装到此类中 ???????????- FilterRow:创建的可迭代对象(__iter__),一个对象保存了组合搜索中的一行数据 ???????????- FilterOption:封装组合搜索的配置项(数据库字段,是否多选,是否choice,条件) ???????- 使用 ???????????- ?class UserInfo(models.MOdel):.... ???????????????????????在stark.py ???????????????class UserMOdelForm(MOdelForm): ???????????????????class Meta: ???????????????????????model = UserInfo ???????????????????????fields = "__all__" ???????????????????????????????????????????class UserinfoConfig(v1.StarkConfig) ???????????????????list_display ???????????????????..... ???????????????????model_form_class = UserMOdelForm ???????????????v1.site.register(UserInfo,UserinfoConfig) ???????????????
 
 

web前端【第十五篇】popup简单使用(弹出页面)

原文地址:https://www.cnblogs.com/xiaohema/p/8455548.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved