求助:Object[][] 类型变量赋值问题

在java中使用sql查询语句的结果想用表格表示出来,把表格内容值存储在Object[][] data中,但是一般赋值语句会出现问题,求问应该用哪种方法赋值?
代码如下:

Object[][] data = null;// 数据
 while (rs.next()) {
                  res = res + rs.getString("num") + rs.getString("class")
                  + rs.getString("name") +rs.getString("f") + rs.getString("age")
                  + rs.getString("addr")+ rs.getString("sex");

                  System.out.println("查询结果:"+res);
//                data[n][] = {rs.getString("num"),rs.getString("class"),rs.getString("name"),
//                        rs.getString("f"),rs.getString("age"),rs.getString("addr"),
//                        rs.getString("sex")};
                    data[n][0] = rs.getString("num");
                    data[n][1] = rs.getString("class");
                    data[n][2] = rs.getString("name");
                    data[n][3] = rs.getString("f");
                    data[n][4] = rs.getString("age");
                    data[n][5] = rs.getString("addr");
                    data[n][6] = rs.getString("sex");
                    n++;
                    for (int i=0;i<7;i++)
                        System.out.println(data[n][i]);
                      }

2个回答

你这样封装数据不大好,即使封装好了,用的时候取出来也很麻烦:就好声明学生Student类:包含你上面的属性:num class等,把你去取出的数据放到
Student类的对象里,然后,在把对象放到:ArrayList里面:
ArrayList student=new ArrayList();
while(rs.next()){
Student st=new Student();
st.num = rs.getString("num");
st.class= rs.getString("class");
st.name= rs.getString("name");
st.f= rs.getString("f");
st.age = rs.getString("age");
st.addr = rs.getString("addr");
st.sex = rs.getString("sex");
student.add(st);
}
//这里你就可以遍历你封装好的数据了

Object[][] data = new Object[多少行][];
循环里
data[i] = new Object[多少列];
再赋值

如果事先不知道行列,那么用ArrayList动态添加

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
for each循环变量赋值问题
对于普通类型来讲 ``` public void test() { List<String> strList = new ArrayList<String>(); strList.add("乐视网"); strList.add("财经网"); strList.add("凤凰网"); for(String str:strList){ if("乐视网".equals(str)){ str = "腾讯网"; } } System.out.println(strList); } ``` 这段代码输出的结果是: [乐视网, 财经网, 凤凰网] 可见循环计数器只是一个中间变量,它仅仅保存了当前正在遍历的集合元素,因此对其赋值并不会改变集合元素本身。 但是,对于map、对象类型来讲 ``` public void test() { List<Map<String,Object>> stringList = new ArrayList<Map<String,Object>>(); Map<String,Object> map = new HashMap<String, Object>(); map.put("leshi", "乐视网"); map.put("caijing", "财经网"); map.put("fenghuang", "凤凰网"); stringList.add(map); for(Map<String,Object> m:stringList){ if("乐视网".equals(m.get("leshi"))){ m.put("leshi", "乐视体育"); } } System.out.println(stringList); } ``` 这段代码输出的结果则为: [{fenghuang=凤凰网, caijing=财经网, leshi=乐视体育}] 显然原来的map的value被改变了。 这是为什么呢?
求助:AttributeError: type object 'Topic' has no attribute 'object'
python新手,求助个有关django的问题 django版本:2.1.5 python版本:3.6.0 问题如下: 项目路径\ learning_log 应用路径\learning_logs \learning_log\urls代码: from django.contrib import admin from django.urls import path,include urlpatterns = [ path('admin/', admin.site.urls), path('',include('learning_logs.urls')) ] \learning_logs.urls代码: from django.urls import path from . import views app_name = 'learning_logs' urlpatterns = [ path('',views.index,name='index'), path('topics/',views.topics,name='topics'), ] \learning_logs.views代码: from django.shortcuts import render from .models import Topic,Entry def index(request): return render(request,'learning_logs/index.html') def topics(request): a = Topic.object.order_by('date_added') context = {'topics':a} return render(request,'learning_logs/topics.html',context) \learning_logs.models代码: from django.db import models class Topic(models.Model): text = models.CharField(max_length=200) date_added = models.DateTimeField(auto_now_add=True) def __str__(self): return self.text class Entry(models.Model): topic = models.ForeignKey(Topic,on_delete=models.CASCADE) text = models.TextField() date_added = models.DateTimeField(auto_now_add=True) class Meta: verbose_name_plural = 'entries' def __str__(self): if len(self.text) < 50: return self.text else: return self.text[:50] + '...' 运行网页后: http://127.0.0.1:8000/ 显示如下,正常 Learning Log - Topics Learning Log helps you keep track of your learning, for any topic you're learning about. 运行 http://127.0.0.1:8000/Topic/ 后报错如下: AttributeError at /topics/ type object 'Topic' has no attribute 'object'
报错TypeError: object NoneType can't be used in 'await' expression?
asyncio异步编程,给字典赋值,总是提示NoneType。 完整代码如下 ``` import asyncio import time hs={} def asy(): #asynchronous start=time.perf_counter() def fn(i): hs[i]=i**9 async def fastdofn(i): await fn(i) tasks=[asyncio.ensure_future(fastdofn(i)) for i in range(10)] loop = asyncio.get_event_loop() loop.run_until_complete(asyncio.wait(tasks)) print(hs) print('runtime : {}'.format(time.perf_counter()-start)) asy() ``` 运行结果: ``` {0: 0, 1: 1, 2: 512, 3: 19683, 4: 262144, 5: 1953125, 6: 10077696, 7: 40353607, 8: 134217728, 9: 387420489} runtime : 0.049445499999999976 Task exception was never retrieved future: <Task finished coro=<asy.<locals>.fastdofn() done, defined at C:\Users\QQ\Desktop\ls\py\异步.py:9> exception=TypeError("object NoneType can't be used in 'await' expression")> Traceback (most recent call last): File "C:\Users\QQ\Desktop\ls\py\异步.py", line 10, in fastdofn await fn(i) TypeError: object NoneType can't be used in 'await' expression ``` 报错了10次 很奇怪的是,hs正常打印,而且达到了预期要求。为什么还会循环报错? 报错的问题解决了,但更懵了 ``` import asyncio import time hs={} def asy(): #asynchronous start=time.process_time() def fn(i): hs[i]=i**9 async def fastdofn(i): fn(i) tasks=[asyncio.ensure_future(fastdofn(i)) for i in range(100000)] loop = asyncio.get_event_loop() loop.run_until_complete(asyncio.wait(tasks)) print(hs[9]) ti=time.process_time()-start#time interval print('asy runtime : {}'.format(ti)) return ti def syn(): #synchronization start=time.process_time() def fn(i): hs[i]=i**9 for i in range(100000): fn(i) print(hs[9]) ti=time.process_time()-start print('syn runtime : {}'.format(ti)) return ti def main(): l1=[] l2=[] for i in range(1,11): print('{}th time'.format(i)) asy() syn() print('\n') #print('asy is {} times faster than syn'.format(sum(l2)/sum(l1))) main() ``` 异步不应该比同步快么,怎么还慢了这么多? ![图片说明](https://img-ask.csdn.net/upload/201911/01/1572603413_578211.png)
C# 反射获取到类型object的变量
C# 反射获取到类型object的变量(本质是List<T>),如何读取List<T>里面的T的值和数 大概是: 反射到了一个类里面所有声明的变量,其中一个变量是LIST<T>类型的,现在只想得到这个变量的值或者是T的类型
python纸牌类TypeError: object of type 'FrenchDeck' has no len()
``` import collections Card=collections.namedtuple('Card',['rank','suit']) class FrenchDeck: ranks = [str(n) for n in range(2,11)] + list('JKQA') suits = 'spades diamonds clubs hearts'.split( ) def __init__(self): self._cards = [Card(rank,suit) for suit in self.suits for rank in self.ranks] def __len__(self): return len(self._cards) def __getitem__(self,position): return self._cards[position] ``` 为什么用len()显示TypeError: object of type 'FrenchDeck' has no len()
R语言:报错:Error in eval(predvars, data, env) : object '广告支出' not found
各位少侠女侠: 江湖救急 本人R语言新手,在模仿《统计学--基于R》(第二版) P238的例【9-1】时候出现了报错: 当使用R语言将excel 导入Rstudio时候,显示列成功导入。 如图 ![图片说明](https://img-ask.csdn.net/upload/201906/10/1560172971_392901.png) 但是 当尝试基于原始数据进行绘制散点图的时候却显示 “广告支出”一列找不到(报错:Error in eval(predvars, data, env) : object '广告支出' not found) 我的代码如下: ``` scatterplot(销售收入~广告支出,data=table_9_1,spread=FALSE,pch=19,xlab="广告支出",ylab="销售收入",cex.lab=0.8) ``` 求高手指点迷津(报拳)。
javascript问题: Object == String 吗?
我是一个ruby程序员。最近看到node.js挺火的,也就试试了。 因为没怎么写过javascript,写起来挺不顺手的。 所以就想把ruby里一些好用的函数(如:empty)拿到javascript里来用。 我的代码是这样写的。 [code="java"]String.prototype.empty = function(){ console.log(typeof(this)); return this=='' ? true : false; } console.log('hello'.empty()); console.log('——————'); console.log(''.empty()); 结果: object false —————— object true[/code] 结果看来说应该 是对了吧!但为什么typeof(this)是object呢? [code="java"]String.prototype.empty = function(){ console.log(this); console.log(typeof(this)); return this=='' ? true : false; } console.log('hello'.empty()); console.log('——————'); console.log(''.empty()); 结果: { '0': 'h', '1': 'e', '2': 'l', '3': 'l', '4': 'o' } object false —————— {} object true[/code] 从上面的结果来看,为什么 typeof(this) 是 object 的原因是明白了。 但问题又出现了: 为什么 this=='' 判断式没有出问题,而且每次还能得出正确的结果呢? 难到说 object 和 string 类型是等价的? 请哪位大侠给指点迷津啊!
object变量后期绑定OleDbCommand重载决策失败,因为没有可访问的Parameters接受此数目的参数。如何解决?
本人用VB.NET,代码如下: Dim OleDbParameter1 As Object OleDbParameter1 = New System.Data.OleDb.OleDbParameter OleDbParameter1.SourceColumn = "TEST1" OleDbParameter1.ParameterName = "TEST1" Dim OleDbCommand1 As Object = Nothing OleDbCommand1 = New System.Data.OleDb.OleDbCommand MsgBox(OleDbCommand1.Parameters.Count) '返回0 OleDbCommand1.Parameters.Add(OleDbParameter1) MsgBox(OleDbCommand1.Parameters.Count) '返回1 MsgBox(OleDbCommand1.Parameters(OleDbCommand1.Parameters.Count - 1).ParameterName) '重载决策失败,因为没有可访问的Parameters接受此数目的参数。 因为我的数据来源复杂,必须采取Object变量在后期绑定,请指教怎样解决上述问题?
vs2008中变量的类型是自定义类,如何使用?
问题更新: 下面提供的“代码段1”和“代码段2”是用户提供的一个webservice接口类,我需要为Col11、Col12、Col13赋值,用户会反馈我Col5的值供我判断赋值的操作是否成功 代码段1: public partial class ERPSA : object, System.ComponentMo del.INotifyPropertyChanged { private string Col11; private decimal Col12; private bool Col13; } —————————————————— 亲们,技术新手,想请教下,VS2008中用户编写了一个自定义类,在另一个方法中定义了一个变量,变量的类型就是该自定义类,举例如下: 代码段2: public partial class Ret : object, System.ComponentModel.INotifyPropertyChanged { private string Col1; private string Col2; private string Col3; } public partial class ABCABC : object, System.ComponentModel.INotifyPropertyChanged { private string Col4; private Ret Col5; } 我现在需要通过调用用户提供的方法来获取Col5的值,请问该怎么使用?谢谢~~~
草鸟求助:js里[object Object]后面的Object是什么东西?
如题,我将一个用构造函数创建的实例,用alert显示,但是显示的是[object Object],不是说后面的Object是这个对象的类吗?为何不是我自定义的类的名字? 相反,alert(window)返回的就是[object Window],alert(document)返回的是[object HtmlDocument],alert(navigator)返回的是[object Navigator],这又怎么理解?
json取值问题 后台没问题前台取值是否id一样json转换不出来
groups: Array[3] 0: Object 1: Object 2: Object groups: Array[3] 0: 1 1: 2 2: 3
java.lang.IllegalArgumentException: object is not an instance of declaring class
目的:将目标xml的内容解析到一个java对象里边(xml的各个标签有对应的java类,并且有包含关系)。 ----------------------------------------------------------------------------------- NginxCache配置文件: <?xml version="1.0" encoding="utf-8"?> <nginx-cache> <cacheable> <include> <pattern params="a,b"> XXXAction/getXXX.rdm </pattern> <pattern params="a,b"> XXXBction/getXXX.rdm </pattern> </include> <exclude> <pattern params=""> XXXAction/getXXX.rdm </pattern> <pattern params=""> XXXBction/getXXX.rdm </pattern> </exclude> </cacheable> <cache-evict> <act pattern="XXXAction/addXXX.rdm" params="a,b"> <evict pattern="" methodRef=""> </evict> <evict pattern="" methodRef=""> </evict> </act> <method id="" name="" class="" returnType=""> <param index="1" default="c"></param> <param index="2" value="a"></param> </method> <method id="" name="" class="" returnType=""> <param index="1" default="c"></param> <param index="2" value="a"></param> </method> </cache-evict> </nginx-cache> --------------------------------------------------------------------------------- 对应的java类 --------------------------------------------------------------------------------- 具体设计思路:在解析到某个Element时调用 traverseOneElement(Element element,Object oneObj)方法;//element是遍历到对应的节点,oneObj是这个节点对应的对象。(刚开始只需要传一个确定的根类的对象即可) 在这个方法里遍历这个element的子节点,对每个子节点的element的Name用反射动态的创建对象,然后利用反射动态调用oneObj set方法,将对应的子节点对象set进去,然后,再调用 traverseOneElement(Element child_element,Object child_Obj);这样设计的, 第一次能设置成功,但是到第二次用子对象来get某个属性的时候会报这个错,不知道啥原因,请高手指教!!! ---------------------------------------------------------------------------------- 报错: java.lang.IllegalArgumentException: object is not an instance of declaring class at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.iwint.rdm.utils.RDMPropertyUtil.getProperty(RDMPropertyUtil.java:60) at com.iwint.rdm.nginxcache.bean.NginxCache.traverseOneElement(NginxCache.java:91) at com.iwint.rdm.nginxcache.bean.NginxCache.main(NginxCache.java:79) ------------------------------------------------------------------------------ package com.iwint.rdm.nginxcache.bean; import java.util.Iterator; import java.util.Map; import org.apache.commons.collections.map.HashedMap; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; import com.iwint.rdm.utils.Dom4jUtil; import com.iwint.rdm.utils.RDMPropertyUtil; /** * @ClassName: NginxCache * @Description: 解析NginxCache.xml用的标签类。 * @author yuanchangyou * @date 2013-9-27 * */ public class NginxCache { private static Map<String,String> classAndBiaoqian; private static NginxCache nginxCache=new NginxCache(); private Cacheable cacheable=new Cacheable(); private CacheEvict cacheEvict=new CacheEvict(); public NginxCache() { } public Cacheable getCacheable() { return cacheable; } public CacheEvict getCacheEvict() { return cacheEvict; } public void setCacheable(Cacheable cacheable) { this.cacheable = cacheable; } public void setCacheEvict(CacheEvict cacheEvict) { this.cacheEvict = cacheEvict; } public static NginxCache parseNginxCache() throws InstantiationException, IllegalAccessException, ClassNotFoundException{ //产生一个解析器对象 SAXReader reader = new SAXReader(); Document document = Dom4jUtil.parse2Document("D:/work/newEclipseWorkSpaces/rdm/src/main/resources/config/NginxCache.xml"); //获取文档的根元素 Element root = document.getRootElement(); NginxCache nginxcache=new NginxCache(); System.out.println(root.getName()); if(root.getName().equals("nginx-cache")) //遍历节点 traverseOneElement(root,nginxcache); return null; } public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException { classAndBiaoqian=new HashedMap(); classAndBiaoqian.put("nginx-cache", NginxCache.class.getName()); classAndBiaoqian.put("cacheable", Cacheable.class.getName()); classAndBiaoqian.put("pattern", UrlIPattern.class.getName()); classAndBiaoqian.put("cache-evict", CacheEvict.class.getName()); classAndBiaoqian.put("nginx-cache", Act.class.getName()); classAndBiaoqian.put("include","include"); classAndBiaoqian.put("exclude", "exclude"); // parseNginxCache(); SAXReader reader = new SAXReader(); Document document = Dom4jUtil.parse2Document("D:/work/newEclipseWorkSpaces/rdm/src/main/resources/config/NginxCache.xml"); //获取文档的根元素 Element root = document.getRootElement(); // NginxCache nginxcache=new NginxCache(); // if(root.getName().equals("nginx-cache")) //遍历根节点 traverseOneElement(root,nginxCache); } public static void traverseOneElement(Element element,Object oneObj) throws InstantiationException, IllegalAccessException, ClassNotFoundException{ // if(element.getName().equals("nginx-cache")){} Object chdil; System.out.println(element.getName()); for( Iterator iter = element.elementIterator(); iter.hasNext();){ Element elmt=(Element) iter.next(); if(elmt.getName().equals("cacheable")||elmt.getName().equals("cache-evict")){ chdil=RDMPropertyUtil.createObjByName(classAndBiaoqian.get(elmt.getName())); RDMPropertyUtil.setProperty(oneObj, elmt.getName(),chdil); Object chidObj=RDMPropertyUtil.getProperty(oneObj, elmt.getName()); traverseOneElement(elmt, chidObj); } else if(elmt.getName().equals("include")||elmt.getName().equals("exclude")||elmt.getName().equals("act")||elmt.getName().equals("method")){ Object newchil=RDMPropertyUtil.getProperty(oneObj,classAndBiaoqian.get(elmt.getName())); traverseOneElement(elmt, newchil); } else if(elmt.getName().equals("pattern")||elmt.getName().equals("param")){ } } } } ---------- package com.iwint.rdm.utils; import java.lang.reflect.Method; import java.lang.reflect.Field; import java.beans.PropertyDescriptor; public class RDMPropertyUtil { public static PropertyDescriptor getPropertyDescriptor(Class clazz, String propertyName) { StringBuffer sb = new StringBuffer(); // 构建一个可变字符串用来构建方法名称 Method setMethod = null; Method getMethod = null; PropertyDescriptor pd = null; try { Field f = clazz.getDeclaredField(propertyName); // 根据字段名来获取字段 if (f != null) { // 构建方法的后缀 String methodEnd = propertyName.substring(0, 1).toUpperCase() + propertyName.substring(1); sb.append("set" + methodEnd); // 构建set方法 setMethod = clazz.getDeclaredMethod(sb.toString(), new Class[] { f.getType() }); sb.delete(0, sb.length());// 清空整个可变字符串 sb.append("get" + methodEnd); // 构建get方法 // 构建get 方法 getMethod = clazz.getDeclaredMethod(sb.toString(), new Class[] {}); // 构建一个属性描述器 把对应属性 propertyName 的 get 和 set 方法保存到属性描述器中 pd = new PropertyDescriptor(propertyName, getMethod, setMethod); } } catch (Exception ex) { ex.printStackTrace(); } return pd; } //动态调用obj对象的set方法(propertyName为属性名,value为值) public static void setProperty(Object obj, String propertyName, Object value) throws InstantiationException, IllegalAccessException { if(obj==null){ obj=obj.getClass().newInstance(); } Class clazz = obj.getClass();// 获取对象的类型 PropertyDescriptor pd = getPropertyDescriptor(clazz, propertyName); // 获取 clazz 类型中的 propertyName 的属性描述器 Method setMethod = pd.getWriteMethod();// 从属性描述器中获取 set 方法 try { setMethod.invoke(obj, new Object[] { value });// 调用 set // 方法将传入的value值保存属性中去 } catch (Exception e) { e.printStackTrace(); } } //动态调用obj对象的get方法(propertyName为属性名) public static Object getProperty(Object obj, String propertyName) throws InstantiationException, IllegalAccessException { Class clazz = obj.getClass();// 获取对象的类型 // 获取clazz类型中的propertyName的属性描述器 PropertyDescriptor pd = getPropertyDescriptor(clazz, propertyName); Method getMethod = pd.getReadMethod();// 从属性描述器中获取 get 方法 Object value = null; try { value = getMethod.invoke(clazz, new Object[] {});// 调用方法获取方法的返回值 } catch (Exception e) { e.printStackTrace(); } return value;// 返回值 } //动态创建一个对象,classname 为该类的全名 public static Object createObjByName(String className) throws InstantiationException, IllegalAccessException, ClassNotFoundException{ return Class.forName(className).newInstance(); } }
问一下为什么工厂类里Map容器要在静态成员变量定义后,在静态代码块中实例化啊,为什么不在成员变量定义的同时实例化呐?
问一下为什么工厂类里Map容器要在静态成员变量定义后,在静态代码块中实例化啊,为什么不在成员变量定义的同时实例化呐? 代码如下: 在静态成员变量定义后,在静态代码块中实例化 ``` public class BeanFactory(){ public static Map<String,Object>() beans; static{ beans = news Map<String,Object>(); } } ``` 在成员变量定义的同时实例化 ``` public class BeanFactory(){ public static Map<String,Object>() beans = news Map<String,Object>(); } ```
python中调用sha3_256进行hash时报错需要buffer API,怎么解决?
代码如下: hash_result = hashlib.sha3_256(encode(str(header) + str(nonce))).hexdigest() 报错信息如下: TypeError: object supporting the buffer API required 请问如何解决这个问题?
为什么在定义v-show变量的时候会出现未指定变量值?
<template> <div v-show="showFlag" class="food"> </div> </template> <script> export default { props: { food: { type: Object }, data() { return { showFlag: false } }, methods: { showed() { this.showFlag = true } } } ``` ```
小白求助:python报错怎么解决 ?
### python 报错:AttributeError: ("'list' object has no attribute 'map'", 'occurred at index 0') ``` def function(x, y, z): if x <= 100 and y == 'AB': return (list(z).map(concept_hierarchy(0))) * disc elif x <= 200 and y == 'AC': return (list(z).map(concept_hierarchy(1))) * disc else: return None data['abc'] = data.apply(lambda x: function(x['a'], x['b'], x['c']), axis=1) ``` 代码主要是对数据表里面,C列的值(特征较多,字符型)进行关系映射(转为数值)。
求助:flask login_user提示'int' object is not callable”
Flask在登录时,提示'int' object is not callable,请各位帮助看一下是什么问题? 根据traceback最后一部提示在getid时出现问题,源码解释要返回unicode id,不知是不是这个原因? 错误提示: ``` File "C:\Personal\Peoplefinder\venv\lib\site-packages\flask\app.py", line 1598, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "C:\Personal\Peoplefinder\Routes.py", line 66, in login login_user(user) File "C:\Personal\Peoplefinder\venv\lib\site-packages\flask_login\utils.py", line 161, in login_user user_id = getattr(user, current_app.login_manager.id_attribute)() TypeError: 'int' object is not callable ``` Taceback源码提示: ``` #: The default attribute to retreive the unicode id of the user ID_ATTRIBUTE = 'get_id' ``` 以下是代码: Routes.py ``` from flask import ( render_template, request, redirect, flash, url_for, Flask ) from Models import User from flask_login import LoginManager, login_user, logout_user , current_user , login_required from flask_sqlalchemy import SQLAlchemy from sqlalchemy import create_engine, MetaData import os app = Flask(__name__) path = os.path.dirname(__file__) path = path + '\data\data.db' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///{}'.format(path) app.config['SECRET_KEY'] = 'kdije29fuk_ksdusii2w' # engine = create_engine('sqlite:///' + path, echo=True) # metadata = MetaData(engine) **_** db = SQLAlchemy(app) login_manager = LoginManager() login_manager.init_app(app) login_manager.login_view = 'login' login_manager.session_protection = 'strong' @app.route('/register', methods=['GET', 'POST']) def register(): if request.method == 'GET': return render_template('register.html') user = User(request.form['username'], request.form['password']) db.session.add(user) db.session.commit() flash('User successfully registered') return redirect(url_for('login')) @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'GET': return render_template('login.html') username = request.form['username'] password = request.form['password'] user = User.query.filter_by(username=username).first() print(user) t = user.verify_password(password) print(t) if user is not None and t is True: login_user(user) print('成功') return redirect(url_for('login')) else: flash('Username or Password is invalid', 'error') print('失败') return redirect(url_for('register')) if __name__ == '__main__': config = dict( debug=True, host='0.0.0.0', port=2000, ) app.run(**config) ``` models.py ``` from flask_login import UserMixin, login_manager, LoginManager from flask_sqlalchemy import SQLAlchemy from werkzeug.security import generate_password_hash, check_password_hash db = SQLAlchemy() class User(db.Model, UserMixin): __tablename__ = "users" id = db.Column('user_id', db.Integer, primary_key=True) username = db.Column('username', db.String(20), unique=True , index=True) password_hash = db.Column('password_hash', db.String(1000)) def __init__(self, username, password): self.username = username self.password = password @property def password(self): raise AttributeError('password is not a readable attribute/ password 不是一个可读属性。') @password.setter def password(self, password): self.password_hash = generate_password_hash(password, method='pbkdf2:sha256', salt_length=8) def verify_password(self, password): return check_password_hash(self.password_hash, password) @property def is_authenticated(self): return True @property def is_active(self): return True @property def is_anonymous(self): return False @property def get_id(self): return self.id def __repr__(self): return '<User %r>' % (self.username) ```
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时想着能进去就不错了,管他哪个岗呢,就同意了面试...
开源一个功能完整的SpringBoot项目框架
福利来了,给大家带来一个福利。 最近想了解一下有关Spring Boot的开源项目,看了很多开源的框架,大多是一些demo或者是一个未成形的项目,基本功能都不完整,尤其是用户权限和菜单方面几乎没有完整的。 想到我之前做的框架,里面通用模块有:用户模块,权限模块,菜单模块,功能模块也齐全了,每一个功能都是完整的。 打算把这个框架分享出来,供大家使用和学习。 为什么用框架? 框架可以学习整体...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
Spring Boot2 系列教程(十七)SpringBoot 整合 Swagger2
前后端分离后,维护接口文档基本上是必不可少的工作。 一个理想的状态是设计好后,接口文档发给前端和后端,大伙按照既定的规则各自开发,开发好了对接上了就可以上线了。当然这是一种非常理想的状态,实际开发中却很少遇到这样的情况,接口总是在不断的变化之中,有变化就要去维护,做过的小伙伴都知道这件事有多么头大!还好,有一些工具可以减轻我们的工作量,Swagger2 就是其中之一,至于其他类似功能但是却收费的软...
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
天天学JAVA-JAVA基础(6)
如果觉得我写的还行,请关注我的博客并且点个赞哟。本文主要介绍JAVA 中最常使用字符串常量String相关知识。 1.String简介 2.创建字符串对象两种方式的区别 3.String常用的方法 4.String的不可变性 5.一道阿里面试题,你会做吗? 1.String简介 1.1String源码 首先看一段String源码,String主要实现了Serializable、Compar...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
2020 网络课 智慧树自动刷课代码,自动跳转,自动答题并关闭弹窗,自动1.5倍速静音
刷课一时爽,一直刷课一直爽! 终于让我找到了这个黑客代码了,教程开始: 只限谷歌浏览器和火狐浏览器使用,如果第一次失败,请重新试一下次 将下面代码复制后,进入浏览器按F12键,先点击console 然后Ctrl+v复制代码 最后按回车键即可 var ti = $("body"); var video = $(".catalogue_ul1 li[id*=video-]"); var i = 1;...
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
一 说明 如果是初学者,建议去网上寻找安装Mysql的文章安装,以及使用navicat连接数据库,以后的示例基本是使用mysql数据库管理系统; 二 准备前提 需要建立一张学生表,列分别是id,名称,年龄,学生信息;本示例中文章篇幅原因SQL注释略; 建表语句: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // dosho
致 Python 初学者
文章目录1. 前言2. 明确学习目标,不急于求成,不好高骛远3. 在开始学习 Python 之前,你需要做一些准备2.1 Python 的各种发行版2.2 安装 Python2.3 选择一款趁手的开发工具3. 习惯使用IDLE,这是学习python最好的方式4. 严格遵从编码规范5. 代码的运行、调试5. 模块管理5.1 同时安装了py2/py35.2 使用Anaconda,或者通过IDE来安装模
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
羞,Java 字符串拼接竟然有这么多姿势
二哥,我今年大二,看你分享的《阿里巴巴 Java 开发手册》上有一段内容说:“循环体内,拼接字符串最好使用 StringBuilder 的 append 方法,而不是 + 号操作符。”到底为什么啊,我平常一直就用的‘+’号操作符啊!二哥有空的时候能否写一篇文章分析一下呢? 就在昨天,一位叫小菜的读者微信我说了上面这段话。 我当时看到这条微信的第一感觉是:小菜你也太菜了吧,这都不知道为啥啊!我估...
写1行代码影响1000000000人,这是个什么项目?
不带钱不带卡,只带手机出门就能畅行无阻,这已是生活的常态。益普索发布的《2019第一季度第三方移动支付用户研究》报告显示,移动支付在手机网民中的渗透率高达95.1%,截至今年1月,支付宝全球用户数已经突破10亿。你或许每天都会打开支付宝,付款购物、领取权益、享受服务……但你或许不知道的是,在这个方便、快捷、智能化的APP背后,有一群年轻的技术人,用智慧和创新让它每天都变得更“聪明”一点。 ...
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI 算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC
一点一滴记录 Java 8 stream 的使用
日常用到,一点一滴记录,不断丰富,知识积累,塑造自身价值。欢迎收藏 String 转 List String str = 1,2,3,4; List&lt;Long&gt; lists = Arrays.stream(str.split(",")).map(s -&gt; Long.parseLong(s.trim())).collect(Collectors.toList()); Lis...
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车? 某胡同口的煎饼摊一年能卖出多少个煎饼? 深圳有多少个产品经理? 一辆公交车里能装下多少个乒乓球? 一
碎片化的时代,如何学习
今天周末,和大家聊聊学习这件事情。 在如今这个社会,我们的时间被各类 APP 撕的粉碎。 刷知乎、刷微博、刷朋友圈; 看论坛、看博客、看公号; 等等形形色色的信息和知识获取方式一个都不错过。 貌似学了很多,但是却感觉没什么用。 要解决上面这些问题,首先要分清楚一点,什么是信息,什么是知识。 那什么是信息呢? 你一切听到的、看到的,都是信息,比如微博上的明星出轨、微信中的表情大战、抖音上的段子
so easy! 10行代码写个"狗屁不通"文章生成器
前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。 背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法 不过,当我看了源代码之后 这程序不到50行 尽管我有多年的Python经验,但我竟然一时也没有看懂 当然啦,原作者也说了,这个代码也是在无聊中诞生的,平时撸码是不写中文变量名的, 中文...
相关热词 如何提升c#开发能力 矩阵乘法c# c#调用谷歌浏览器 c# 去空格去转义符 c#用户登录窗体代码 c# 流 c# linux 可视化 c# mvc 返回图片 c# 像素空间 c# 日期 最后一天
立即提问