博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
popup的简单应用举例
阅读量:7283 次
发布时间:2019-06-30

本文共 3266 字,大约阅读时间需要 10 分钟。

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

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

复制代码

无所谓

点我点我

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

 
复制代码

pop.html

复制代码
{% csrf_token %}
复制代码

pop_response.html

复制代码

正在关闭

复制代码

运行结果截图

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}
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)
复制代码

 

 

转载于:https://www.cnblogs.com/kcwxx/p/10152577.html

你可能感兴趣的文章
查询该表的所有字段名以及该字段的最大值最小值
查看>>
mysql 案例 ~ 主从复制延迟之并行复制
查看>>
模拟 POJ 2993 Emag eht htiw Em Pleh
查看>>
JMETER 使用JDBC查找数据作为参数
查看>>
BT网站-IBMID.COM
查看>>
hashmap和hashtable区别
查看>>
android intent 及自定义消息传递
查看>>
ios 判断某个时间是周几的方法
查看>>
【引】How to Choose the Best Way to Pass Multiple Models in ASP.NET MVC
查看>>
【BZOJ4755】 [Jsoi2016]扭动的回文串
查看>>
npoi 导出
查看>>
POJ 1364
查看>>
字符编码与函数
查看>>
css中position属性值的区别
查看>>
计蒜客 蓝桥杯模拟 瞬间移动 dp
查看>>
手动删除oracle数据库
查看>>
Oracle 启动失败报错“TNS-12555: TNS:permission denied”解决办法
查看>>
this指针/常函数、常对象
查看>>
Jmeter获取redis数据
查看>>
电子书,电子图书馆网址大全
查看>>